Java - 数字的递归总和及其工作原理

scn*_*djs 3 java recursion

我试图写一个递归函数,当我用数字5调用时,函数将计算所有数字的总和为5.1 + 2 + 3 + 4 + 5 = 15

当前代码总是返回0,每次n的数量怎么样?

public class t {
public static void main(String[] args) {

    System.out.println(num(5));
}

public static int num(int n) {

    int sum = 0;
    sum += n;
    if (n == 0)
        return sum;

    return num(n - 1);

}

}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Til*_*ddy 5

而不是设置总和0你可以 - 这样
做:

public int sumUp(int n){

    if (n==1)
        return 1;
    else
       return sumUp(n-1)+n;
}
Run Code Online (Sandbox Code Playgroud)

  • @KevinWallis,你甚至都不能做到.`return n <= 1?n:num(n -1)+ n;`在1行中完成. (5认同)