原文: https://www.programiz.com/cpp-programming/examples/natural-number-sum-recursion

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

要理解此示例,您应该了解以下 C++ 编程主题:


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

您也可以使用循环来查找自然数之和。 但是,您将在此处学习使用递归解决此问题的方法。

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

  1. #include<iostream>
  2. using namespace std;
  3. int add(int n);
  4. int main()
  5. {
  6. int n;
  7. cout << "Enter a positive integer: ";
  8. cin >> n;
  9. cout << "Sum = " << add(n);
  10. return 0;
  11. }
  12. int add(int n)
  13. {
  14. if(n != 0)
  15. return n + add(n - 1);
  16. return 0;
  17. }

输出

  1. Enter an positive integer: 10
  2. 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