跳到主要内容

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() 函数。