使用递归求 n 以内的自然数之和的 C 程序

要理解此示例,您应该具备以下 C 语言编程主题的知识:

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

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

使用递归的自然数总和

#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;
}

输出

Enter a positive integer: 20
Sum = 210

假设用户输入了 20

最初, 从 main() 中, 20 作为参数传递给 addNumbers() 函数。

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

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

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