使用递归计算前 N 个数字的和

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何使用递归来计算前 N 个数字的和。我们将使用 C 编程语言编写一个程序,该程序接收用户输入,计算前 N 个数字的和,并将结果输出给用户。递归是一种编程技术,其中函数通过调用自身来解决问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("`C`")) -.-> c/FunctionsGroup(["`Functions`"]) c(("`C`")) -.-> c/FileHandlingGroup(["`File Handling`"]) c(("`C`")) -.-> c/UserInteractionGroup(["`User Interaction`"]) c/FunctionsGroup -.-> c/function_declaration("`Function Declaration`") c/FunctionsGroup -.-> c/function_parameters("`Function Parameters`") c/FunctionsGroup -.-> c/recursion("`Recursion`") c/FileHandlingGroup -.-> c/create_files("`Create Files`") c/FileHandlingGroup -.-> c/read_files("`Read Files`") c/UserInteractionGroup -.-> c/user_input("`User Input`") c/UserInteractionGroup -.-> c/output("`Output`") subgraph Lab Skills c/function_declaration -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/function_parameters -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/recursion -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/create_files -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/read_files -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/user_input -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} c/output -.-> lab-123342{{"`使用递归计算前 N 个数字的和`"}} end

创建文件并定义主函数

首先,我们将创建一个名为 main.c 的新文件。主函数接收用户输入的 N 值,将此输入传递给递归求和函数,然后输出结果。

#include<stdio.h>

int getSum(int);

int main()
{
    printf("This program finds the sum of the first N numbers using recursion.\n");

    int n, sum;
    printf("\nEnter the value of N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nThe sum of the first %d numbers is %d\n", n, sum);

    return 0;
}

定义递归求和函数

在这一步中,我们将定义递归求和函数 getSum()。该函数接收一个整数参数 n,并返回前 n 个整数的和。该函数会递归调用,直到 n 小于或等于 0 时停止。

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

static int sum = 0; 语句用于创建一个静态局部变量。由于这是一个递归函数,当 getSum() 被多次调用时,将使用同一个变量。

运行代码

程序现在已经准备好运行。使用以下命令编译并运行程序:

$ gcc main.c -o main
$ ./main

完整代码清单

#include<stdio.h>

int getSum(int);

int main()
{
    printf("This program finds the sum of the first N numbers using recursion.\n");

    int n, sum;
    printf("\nEnter the value of N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nThe sum of the first %d numbers is %d\n", n, sum);

    return 0;
}

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

总结

在本实验中,我们学习了如何在 C 编程中使用递归来计算前 N 个数字的和。我们创建了一个程序,该程序接收用户输入,使用递归函数计算前 N 个整数的和,并将结果输出给用户。

您可能感兴趣的其他 C 教程