如何编写递归方法来返回int中的数字总和?

use*_*088 3 java recursion

所以这是我的代码到目前为止.

    public int getsum (int n){
        int num = 23456;
        int total = 0;
        while (num != 0) {
            total += num % 10;
            num /= 10;
        }
    } 
Run Code Online (Sandbox Code Playgroud)

问题是,我不能/知道如何将其更改为递归方法我是一种新的递归,我需要一些帮助实现此方法来改变它,以便它的递归.

Nay*_*rhc 14

简短,递归并完成工作:

int getsum(int n) {
   return n == 0 ? 0 : n % 10 + getsum(n/10);
}
Run Code Online (Sandbox Code Playgroud)


Rah*_*kar 6

这里是,

//sumDigits function
int sumDigits(int n, int sum) {    
    // Basic Case to stop the recursion
if (n== 0)  {
        return sum;
    } else {
        sum = sum + n % 10;  //recursive variable to keep the digits sum
        n= n/10;
        return sumDigits(n, sum); //returning sum to print it.
    }
}
Run Code Online (Sandbox Code Playgroud)

实际功能的一个例子:

public static void main(String[] args) {
     int sum = sumDigits(121212, 0);
     System.out.println(sum);
}
Run Code Online (Sandbox Code Playgroud)