这个问题需要解决方案吗?

时间:2015-06-26 20:51:38

标签: java loops

非负整数n,n!的阶乘被定义为小于或等于n的所有正整数的乘积:

0! = 1

N! = 1×2×3×...×n

在以下代码提取中查找用于计算n!。

值的错误
grupo.grupo

一旦完成,我必须重写此函数以删除“for”循环。

非常感谢任何建议!

1 个答案:

答案 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;
}