有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

这是我目前的代码

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

问题是我不知道如何将其转换为递归方法 我对递归有点陌生,我需要一些帮助来实现这个方法,从而改变它的递归性


共 (5) 个答案

  1. # 1 楼答案

    给你

    //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.
        }
    }
    

    正在运行的函数的一个示例:

    public static void main(String[] args) {
         int sum = sumDigits(121212, 0);
         System.out.println(sum);
    }
    
  2. # 2 楼答案

    简短、递归并完成以下工作:

    int getsum(int n) {
       return n == 0 ? 0 : n % 10 + getsum(n/10);
    }
    
  3. # 3 楼答案

    int getSum(int N)
    {
        int totalN = 0;
    
        totalN += (N% 10);
        N/= 10;
    
        if(N == 0)
            return totalN;
        else 
            return getSum(N) + totalN;
    }
    
  4. # 4 楼答案

    试试这个:

    int getSum(int num)
    {
        total = total + num % 10;
        num = num/10;
        if(num == 0)
        {
            return total;
        } else {
            return getSum(num);
        }
    }
    
  5. # 5 楼答案

    public static int sumOfDigit(int num){
        int sum=0;
        if (num == 0)
        return sum;
                sum = num%10 + sumOfDigit(num/10);
        return sum;
    }
    public static void main(String args[]) {
        Scanner input=new Scanner(System.in);
        System.out.print("Input num : ");
        int num=input.nextInt();
        int s=sumOfDigit(num);
        System.out.println("Sum = "+s);
    }
    

    }