跳到主要内容

Java 程序:使用递归找出自然数之和

要理解这个示例,你应该具备以下 Java 编程主题的知识:

正数 1、2、3... 被称为自然数。下面的程序从用户那里获取一个正整数,并计算出直到该数字的总和。

你也可以使用循环找出自然数的和。然而,在这里你将学习使用递归来解决这个问题。

示例:使用递归求自然数之和

public class AddNumbers {

public static void main(String[] args) {
int number = 20;
int sum = addNumbers(number);
System.out.println("Sum = " + sum);
}

public static int addNumbers(int num) {
if (num != 0)
return num + addNumbers(num - 1);
else
return num;
}
}

输出

Sum = 210

要求和的数字存储在变量 number 中。

最初,从 main() 函数调用 addNumbers(),并传递 20 作为参数。

number(20)被添加到 addNumbers(19) 的结果中。

在从 addNumbers()addNumbers() 的下一个函数调用中,传递了 19,这个值被添加到 addNumbers(18) 的结果中。这个过程持续进行,直到 num 等于 0。

num 等于 0 时,不再进行递归调用,这将整数的总和返回到 main() 函数。