# C++ 程序：使用递归查找自然数之和

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

#### 通过使用递归函数查找自然数之和的示例。

要理解此示例，您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题：

*   [C++ 函数](/cpp-programming/function)
*   [C++ 中用户定义函数的类型](/cpp-programming/user-defined-function-types)
*   [C++ `if`，`if...else`和嵌套`if...else`](/cpp-programming/if-else)
*   [C++ 递归](/cpp-programming/recursion)

* * *

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

您也可以使用循环来[查找自然数之和](/cpp-programming/examples/sum-natural-number)。 但是，您将在此处学习使用递归解决此问题的方法。

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

```cpp
#include<iostream>
using namespace std;

int add(int n);

int main()
{
    int n;

    cout << "Enter a positive integer: ";
    cin >> n;

    cout << "Sum =  " << add(n);

    return 0;
}

int add(int n)
{
    if(n != 0)
        return n + add(n - 1);
    return 0;
} 
```

**输出**

```cpp
Enter an positive integer: 10
Sum = 55

```

在该程序中，用户输入的数字将传递到`add()`函数。

假设用户输入了 10。 现在，将 10 传递给`add()`函数。 此函数将 10 加到 9 的加法结果中（`10-1 = 9`）。

下次，将 9 加到 8 的相加结果中（`9-1 = 8`）。 当函数返回 0 时，此过程一直持续到数字达到 0 为止。

现在，将返回每个函数来计算最终结果：`1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55`。