【问题标题】:sums up the values of all factorials using recursion使用递归总结所有阶乘的值
【发布时间】:2016-03-09 08:28:14
【问题描述】:

我尝试编写一个递归方法,它将从 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 ;      
}

【问题讨论】:

  • 一种可能性是在阶乘方法中添加runningTotal 参数。

标签: java recursion sum factorial


【解决方案1】:

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

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

【讨论】:

  • 0! = 1,所以 if 语句应该返回 1 而不是 0
  • @Genzotto 我没想到。你是对的。我会修复它。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 2015-04-19
  • 2019-07-24
  • 2013-09-18
  • 2012-01-01
  • 2019-10-22
相关资源
最近更新 更多