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

在此示例中,您将学习使用递归函数查找自然数之和。

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


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

访问此页面以使用循环查找自然数之和


使用递归的自然数之和

  1. #include <stdio.h>
  2. int addNumbers(int n);
  3. int main() {
  4. int num;
  5. printf("Enter a positive integer: ");
  6. scanf("%d", &num);
  7. printf("Sum = %d", addNumbers(num));
  8. return 0;
  9. }
  10. int addNumbers(int n) {
  11. if (n != 0)
  12. return n + addNumbers(n - 1);
  13. else
  14. return n;
  15. }

输出

  1. Enter a positive integer: 20
  2. Sum = 210

假设用户输入了 20。

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

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

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

n等于 0 时,没有递归调用。 这最终将整数和返回给main()函数。