# Kotlin 程序：使用递归找到自然数之和

> 原文： [https://www.programiz.com/kotlin-programming/examples/sum-natural-numbers-recursion](https://www.programiz.com/kotlin-programming/examples/sum-natural-numbers-recursion)

#### 在此程序中，您将学习在 Kotlin 中使用递归查找自然数之和。 这是在递归函数的帮助下完成的。

正数 1、2、3... 称为自然数。 下面的程序从用户处获取一个正整数，然后计算得出给定数字的总和。

您也可以使用循环[查找自然数的总和](/kotlin-programming/examples/sum-natural-numbers "Natural number sum using loops in Kotlin")。 但是，您将在此处学习使用递归解决此问题。

## 示例：使用递归的自然数之和

```kt
fun main(args: Array<String>) {
    val number = 20
    val sum = addNumbers(number)
    println("Sum = $sum")
}

fun addNumbers(num: Int): Int {
    if (num != 0)
        return num + addNumbers(num - 1)
    else
        return num
}
```

运行该程序时，输出为：

```kt
Sum = 210
```

将求和的数字存储在变量`num`中。

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

`num`（20）被添加到`addNumbers(19)`的结果中。

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

当`num`等于 0 时，没有递归调用，这将整数和返回给`main()`函数。

以下是等效的 Java 代码：[使用递归](/java-programming/examples/sum-natural-numbers-recursion "Java Program to Find Sum of Natural Numbers using Recursion")查找自然数之和的 Java 程序