使用递归求和所有阶乘的值

sums up the values of all factorials using recursion


我尝试编写一个递归方法,对从 0 到输入数字的所有阶乘的值求和,returns 结果为双精度值。 我用 递归阶乘法计算单个阶乘。 但我不明白如何制作求和所有阶乘的方法 使用两次递归而不是一次递归和 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);
}