正数 1, 2, 3... 被称为自然数。下面的程序从用户那里获取一个正整数,并计算到给定数字的总和。
您也可以 使用循环找到自然数之和。但在此处您将学习如何使用递归来解决此问题
示例:使用递归计算自然数之和
#include<iostream>
using namespace std;
int add(int n);
int main() {
int n;
cout << "Enter a positive integer: ";
cin >> n;
cout << "Sum = " << add(n);
return 0;
}
int add(int n) {
if(n != 0)
return n + add(n - 1);
return 0;
}
输出
Enter an positive integer: 10 Sum = 55
在此程序中,用户输入的数字被传递给 add()
函数。
假设用户输入 10。现在,10 被传递给 add()
函数。此函数将 10 添加到 9 的加法结果中(10 - 1 = 9)。
下一次,9 被添加到 8 的加法结果中(9 - 1 = 8)。这个过程一直持续到数字达到 0,此时函数返回 0。
现在,每个函数都被返回以计算最终结果:1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55。