我尝试编写一个递归方法,将从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 ;
}
答案 0 :(得分:3)
递归sum
方法的行为与递归factorial
方法完全相同。唯一的区别是它使用了加法而不是乘法。
public static double sum(int numberinput) {
if (numberinput == 0)
return 1;
else
return factorial(numberinput) + sum(numberinput-1);
}