C 语言中的递归幂运算

CCBeginner
立即练习

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

介绍

在本实验中,我们将学习如何使用 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(("C")) -.-> c/BasicsGroup(["Basics"]) c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/math_functions("Math Functions") 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/operators -.-> lab-123307{{"C 语言中的递归幂运算"}} c/function_declaration -.-> lab-123307{{"C 语言中的递归幂运算"}} c/function_parameters -.-> lab-123307{{"C 语言中的递归幂运算"}} c/math_functions -.-> lab-123307{{"C 语言中的递归幂运算"}} c/recursion -.-> lab-123307{{"C 语言中的递归幂运算"}} c/create_files -.-> lab-123307{{"C 语言中的递归幂运算"}} c/read_files -.-> lab-123307{{"C 语言中的递归幂运算"}} c/user_input -.-> lab-123307{{"C 语言中的递归幂运算"}} c/output -.-> lab-123307{{"C 语言中的递归幂运算"}} end

创建 C 文件

~/project/ 目录下创建一个名为 main.c 的新文件。我们将在此文件中编写 C 代码。

声明函数原型

power() 函数接收两个整数作为输入,并返回执行幂运算后的值。

int power(int base, int exponent);

定义 power() 函数

power() 函数通过递归调用自身来执行幂运算。如果指数等于 0,则返回 1。否则,返回基数乘以调用 power() 函数的结果,其中指数减 1。

int power(int base, int exponent)
{
    if(exponent == 0) // 基本情况
        return 1;
    else
        return base * power(base, exponent - 1); // 递归情况
}

获取用户输入并调用 power() 函数

使用 scanf() 函数从用户获取基数和指数,然后将它们作为参数传递给 power() 函数。最后,使用 printf() 函数显示结果。

int main()
{
    int base, exponent, result;

    printf("Enter the base: ");
    scanf("%d", &base);

    printf("Enter the exponent: ");
    scanf("%d", &exponent);

    result = power(base, exponent);

    printf("%d^%d = %d", base, exponent, result);

    return 0;
}

编译并运行代码

保存更改后,使用 gcc 编译器编译程序,命令如下:

gcc main.c -o main

现在,通过在终端中输入以下命令来运行程序:

./main

输出

输出将显示用户输入的基数的指数运算结果。

总结

在本实验中,我们学习了如何使用 C 语言中的递归来计算一个数的 n 次方。我们通过使用一个递归函数来实现这一点,该函数会不断调用自身,直到达到指数等于 0 的基本情况,然后返回 1。我们将递归函数返回的值存储在变量中,并使用 printf() 函数将其显示给用户。

power() 函数可以用于在 C 语言中计算任意数的指定次方。