非负整数n,n!的阶乘被定义为小于或等于n的所有正整数的乘积:
0! = 1
N! = 1×2×3×...×n
在以下代码提取中查找用于计算n!。
值的错误grupo.grupo
一旦完成,我必须重写此函数以删除“for”循环。
非常感谢任何建议!
答案 0 :(得分:0)
这是一个功课问题吗?如果是这样,你应该这样标记。
无论如何,错误就在这里:
for (int i = 1; i < n; ++i)
{
nf *= i;
}
在你的for循环中,你得到n,这将计算(n-1)!. 例如,输入4将给你1 * 2 * 3即3!。
通过将其循环到n来修复它,所以我&lt;的n + 1。
您也可以使用递归:
int fact(int n){
int nf;
if(n==1)
return 1;
nf = fact(n-1) * n;
return nf;
}