C++ 的新手。制作这个阶乘程序,不知何故我已经通过代码抓取并构建了一些东西,但它返回的值总是正确值的 10 倍。例如,5 的阶乘计算为 1200 而不是 120,3 的阶乘计算为 60。为什么要多出一个单位?
这是代码:
#include <iostream>
using namespace std;
int main() {
int i, j, num;
cout << "Compute factorial: " << endl;
cin >> num;
for (i=1; i<num; i++){
for (j=num; j>1; j--)
num *=(j-i);
cout << num;
}
return 0;
}
最佳答案
您只需要一个循环。这种方式应该简单很多。
#include <iostream>
using namespace std;
int main() {
int i, j=1, num;
cout << "Compute factorial: " << endl;
cin >> num;
for (i=num; i>0; i--){
j *= i;
}
cout << j << endl;
}
关于C++ 阶乘程序做奇怪的数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957899/