我尝试编写一种递归方法,该方法将所有从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);
}