神武 月光审判效果图:c语言的小问题
来源:百度文库 编辑:高考问答 时间:2024/05/10 08:01:41
请问求N的阶乘的时候怎样让数值范围尽量变大,比如说能算到60的阶乘
用long double
如果不行的话
可以把它们放到一个数组里!!!!
template <int n>
struct Fact
{
enum {RET = n * Fact<n - 1>::RET};
}
template <>
struct Fact<1>
{
enum {RET = 1};
}
int main(void)
{
printf("Factorial: %d\n", Fact<60>::RET);
getch();
return 0;
}
如果一种语言的最大数值范围还是不够用,那么最好的办法就是换另一种语言.
用long double是最简单的方法!!而且容易接受
long double 应该可以吧