Java 程序:使用递归求数字和

原文:https://www.studytonight.com/java-programs/java-program-to-find-sum-of-digits-of-a-number-using-recursion

在本教程中,我们将学习如何使用递归找到一个数字的所有数字的总和。递归函数是重复调用自身的函数。在这里,我们将首先要求用户初始化数字,然后通过递归调用函数来找到所有的数字并计算它们的总和。但是在继续之前,如果你不熟悉 java 中循环的概念,那么一定要查看关于 Java 中循环的文章。

输入:输入数字:564

输出:所有数字之和为:15

让我们看看例子,了解如何用递归求数字的和。

程序 1:一个数字的数字总和

在下面的例子中,我们将看到如何使用递归来求一个数的位数之和。

算法:

  1. 开始
  2. 创建 Scanner 类的实例。
  3. 声明一个变量来存储数字。
  4. 要求用户初始化变量。
  5. 声明一个用户定义的函数,使用递归计算数字的位数总和。
  6. 递归调用函数来计算数字的总和。
  7. 显示数字的总和。
  8. 停下来。

下面的例子说明了上述算法的实现。

//Java Program to find the sum of digits using recursion
import java.util.*;

public class Main 
{
    public static int sum_of_digit(int num)
    { 
        if (num == 0)
            return 0;
        return (num % 10 + sum_of_digit(num / 10));
    }
    // Driver Program
    public static void main(String args[])
    {
        //Take input from the user
        //Create an instance of the Scanner Class
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number: ");
        int num=sc.nextInt();
        int res=sum_of_digit(num);
        System.out.println("The sum of digits is: "+res);
    }
}

输入数字 854 该数字的位数总和为 17

程序 2:一个数字的数字总和

在下面的例子中,我们将看到如何使用递归来求一个数的位数之和。

算法:

  1. 开始
  2. 创建 Scanner 类的实例。
  3. 声明一个变量来存储数字。
  4. 要求用户初始化变量。
  5. 声明一个用户定义的函数,使用递归计算数字的位数总和。
  6. 递归调用函数来计算数字的总和。
  7. 返回计算出的总和。
  8. 打印结果。
  9. 停下来。

下面的例子说明了上述算法的实现。

//Java Program to find the sum of digits using recursion
import java.util.*;

public class Main 
{
    int sum=0;
    int sumOfDigits(long num)
    {
       if(num!=0)
        {
             sum+=num%10;
            num/=10;
            sumOfDigits(num);
        }
    return sum;
    }
    //Driver code
    public static void main(String arg[])    
    {
        long num,res;
        Main main=new Main();
        //Take input from the user
        //Create an instance of the Scanner class
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter a number ");
        num=sc.nextLong();
        System.out.println("The sum of digits of the number is "+main.sumOfDigits(num));

    }
}

输入一个数字 4567854 这个数字的位数总和是 39