ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C 程序:使用递归查找自然数之和 > 原文: [https://www.programiz.com/c-programming/examples/natural-number-sum-recursion](https://www.programiz.com/c-programming/examples/natural-number-sum-recursion) #### 在此示例中,您将学习使用递归函数查找自然数之和。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C 用户定义的函数](/c-programming/c-user-defined-functions) * [C 递归](/c-programming/c-recursion) * * * 正数 1、2、3 ...称为自然数。 下面的程序从用户处获取一个正整数,然后计算得出给定数字的总和。 访问此页面以使用循环查找[自然数之和](https://www.programiz.com/c-programming/examples/sum-natural-numbers)。 * * * ## 使用递归的自然数之和 ```c #include <stdio.h> int addNumbers(int n); int main() { int num; printf("Enter a positive integer: "); scanf("%d", &num); printf("Sum = %d", addNumbers(num)); return 0; } int addNumbers(int n) { if (n != 0) return n + addNumbers(n - 1); else return n; } ``` **输出** ```c Enter a positive integer: 20 Sum = 210 ``` * * * 假设用户输入了 20。 最初,从`main()`调用`addNumbers()`,并传递 20 作为参数。 数字 20 被添加到`addNumbers(19)`的结果中。 在从`addNumbers()`到`addNumbers()`的下一个函数调用中,传递了 19,该值被添加到`addNumbers(18)`的结果中。 该过程一直持续到`n`等于 0。 当`n`等于 0 时,没有递归调用。 这最终将整数和返回给`main()`函数。