C++ 程序,使用递归函数求 n 个自然数的和


2023年1月21日, Learn eTutorial
1919

在这个 C++ 程序中,使用递归函数计算自然数的和。

我们如何计算 n 个自然数的和?

自然数是包含所有非零整数的数。例如,自然数 = { 1, 2, 3, …….}。这里 n 是用户输入的自然数个数。因此,要找到 n 个自然数的和,我们必须将 1 + 2 + 3 + …….+ n 相加。例如,如果 n = 6,那么和 = 1 + 2 + 3 + 4 + 5 + 6 = 21

C++ 中的递归

如果一个函数在满足某些条件之前不断调用自身,则称该函数为递归函数。

C++ 程序,使用递归函数求 n 个自然数的和

在这个程序中,我们要求用户输入一个正整数,并将其值读取到变量 n。定义一个递归函数 add()。将变量 n 传递给函数 add()。在 if 条件语句中检查条件 n != 0。将 n 加到 n-1 的加法结果中。

返回 n + add(n – 1);

假设用户输入 10。现在,10 被传递给 add() 函数。这个函数将 10 加到 9 的加法结果中(10 - 1 = 9)。在下一个函数调用中,9 与 8 相加(9 - 1 = 8)。这个过程一直持续到数字达到 0,此时函数返回 0。最后,我们得到结果 55。

算法

步骤 1: 调用头文件 iostream。

步骤 2:使用命名空间 std。

步骤 3:定义一个函数 add();
    n + add ( n- 1) 直到 n != 0;
    返回值  

步骤 4:打开整型 main 函数; int main()

步骤 5: 声明整型变量;n

步骤 6:打印一条消息,要求输入一个正整数。

步骤 7: 将值读入变量 n

步骤 8: 调用函数 add(n);

步骤 9:退出;
 

C++ 源代码

                                          #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 a positive integer: 12
Sum =  78