我尝试编写一种递归方法,该方法将所有从0到输入数字的阶乘的值求和,并将结果作为双精度值返回。
我用
 递归阶乘方法来计算各个阶乘。
 但我不明白如何制作将所有阶乘相加的方法
递归方法使用两个递归而不是一个递归和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 ;
}

最佳答案

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

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

07-28 12:00