使用递归总结所有阶乘的值

时间:2016-03-09 08:28:15

标签: java recursion sum factorial

我尝试编写一个递归方法,将从0到输入数的所有阶乘的值相加,并将结果作为double返回。 我用  递归因子法计算个体因子。  但我不明白我如何制定总和所有因子的方法 递归方法使用两个递归而不是一个递归和for循环。

这是代码!

public static int factorial(int numberinput) {
    if (numberinput == 0)
        return 1;
    else 
        return (numberinput*factorial(numberinput-1));
}

public static double sum(int numberinput) {
    double sum = 0;
    for (int i = 0; i <= numberinput; i++)
        sum += factorial(i);
    return sum ;      
}

1 个答案:

答案 0 :(得分:3)

递归sum方法的行为与递归factorial方法完全相同。唯一的区别是它使用了加法而不是乘法。

public static double sum(int numberinput) {
    if (numberinput == 0)
        return 1;
    else
        return factorial(numberinput) + sum(numberinput-1);
}