深圳市鑫聚慧有限公司:c语言的小问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 17:38:58
请问求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 应该可以吧