Java 程序:使用递归求数字和
在本教程中,我们将学习如何使用递归找到一个数字的所有数字的总和。递归函数是重复调用自身的函数。在这里,我们将首先要求用户初始化数字,然后通过递归调用函数来找到所有的数字并计算它们的总和。但是在继续之前,如果你不熟悉 java 中循环的概念,那么一定要查看关于 Java 中循环的文章。
输入:输入数字:564
输出:所有数字之和为:15
让我们看看例子,了解如何用递归求数字的和。
程序 1:一个数字的数字总和
在下面的例子中,我们将看到如何使用递归来求一个数的位数之和。
算法:
- 开始
- 创建 Scanner 类的实例。
- 声明一个变量来存储数字。
- 要求用户初始化变量。
- 声明一个用户定义的函数,使用递归计算数字的位数总和。
- 递归调用函数来计算数字的总和。
- 显示数字的总和。
- 停下来。
下面的例子说明了上述算法的实现。
//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:一个数字的数字总和
在下面的例子中,我们将看到如何使用递归来求一个数的位数之和。
算法:
- 开始
- 创建 Scanner 类的实例。
- 声明一个变量来存储数字。
- 要求用户初始化变量。
- 声明一个用户定义的函数,使用递归计算数字的位数总和。
- 递归调用函数来计算数字的总和。
- 返回计算出的总和。
- 打印结果。
- 停下来。
下面的例子说明了上述算法的实现。
//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