Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归对所有阶乘的值求和_Java_Recursion_Sum_Factorial - Fatal编程技术网

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

Java 使用递归对所有阶乘的值求和,java,recursion,sum,factorial,Java,Recursion,Sum,Factorial,我尝试编写一个递归方法,将从0到输入数字的所有阶乘值相加,并将结果作为双精度返回。 我用 计算单个因子的递归因子方法。 但是我不明白我怎么能得到所有阶乘求和的方法 递归方法使用两个递归而不是一个递归,用于循环 这是密码 public static int factorial(int numberinput) { if (numberinput == 0) return 1; else return (numberinput*factorial(n

我尝试编写一个递归方法,将从0到输入数字的所有阶乘值相加,并将结果作为双精度返回。 我用 计算单个因子的递归因子方法。 但是我不明白我怎么能得到所有阶乘求和的方法 递归方法使用两个递归而不是一个递归,用于循环

这是密码

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 ;      
}
公共静态整数阶乘(整数输入){
如果(numberinput==0)
返回1;
其他的
返回(numberinput*阶乘(numberinput-1));
}
公共静态双和(整数输入){
双和=0;

对于(int i=0;i递归
sum
方法可以像递归
factorial
方法一样工作。唯一的区别是它使用加法而不是乘法

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

一种可能是在阶乘方法中添加一个
runningTotal
参数。0!=1,因此if语句应该返回1而不是10@Genzotto我没想过。你说得对。我会修好的。谢谢