C 编程:使用递归找出自然数之和
要理解这个例子,你应该了解以下 C 语言 主题的知识:
正数 1、2、3... 被称为自然数。下面的程序从用户那里接收一个正整数,并计算出直到该数的和。
访问这个页面以了解 如何使用循环求自然数之和。
使用递归求自然数之和
#include <stdio.h>
int addNumbers(int n);
int main() {
int num;
printf("请输入一个正整数:");
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;
}
输出
请输入一个正整数:20
Sum = 210
假设用户输入的是 20。
最初,addNumbers()
从 main()
被调用,并传入 20 作为参数。
数字 20 被加到 addNumbers(19)
的结果上。
在从 addNumbers()
到 addNumbers()
的下一个函数调用中,传入了 19,它被加到 addNumbers(18)
的结果上。这个过程一直持续到 n
等于 0 为止。
当 n
等于 0 时,不再进行递归调用。这最终将整数之和返回给 main()
函数。