【发布时间】:2011-12-22 06:55:19
【问题描述】:
首先,我是 C++ 新手。我试过下面的程序来计算任何数字的阶乘。
#include <iostream>
using namespace std;
unsigned long factorial(unsigned long n){
return n <= 1 ? 1 : n * factorial(n-1);
}
int main()
{
cout << "Enter any Number to calculate factorial." <<endl;
unsigned long n;
cin >> n ;
cout << factorial(n) ;
}
如果我给出 5、3、20 之类的小数字,它会返回准确的值。但是,如果我给出 34 等数字。它会返回零。我假设它超出了限制范围。无论我输入什么数字,请帮助我返回确切的结果。
【问题讨论】:
-
如果你总是想要精确的数字,你需要使用 bignum 库
-
如果您只想要一个简单的函数来帮助您玩 C++,请尝试使用斐波那契数列。 Factorial 发展得太快了,不好玩。
标签: c++