使用 C 语言计算数字的阶乘

CCBeginner
立即练习

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

介绍

在本实验中,我们将学习如何编写一个 C 程序来计算一个数的阶乘。我们将使用一个简单的算法,通过循环来计算阶乘。

注意:你需要自己创建文件 ~/project/main.c 来练习编码,并学习如何使用 gcc 编译和运行它。

cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("`C`")) -.-> c/BasicsGroup(["`Basics`"]) c(("`C`")) -.-> c/ControlFlowGroup(["`Control Flow`"]) c(("`C`")) -.-> c/FunctionsGroup(["`Functions`"]) c(("`C`")) -.-> c/UserInteractionGroup(["`User Interaction`"]) c/BasicsGroup -.-> c/variables("`Variables`") c/ControlFlowGroup -.-> c/for_loop("`For Loop`") c/FunctionsGroup -.-> c/function_declaration("`Function Declaration`") c/FunctionsGroup -.-> c/math_functions("`Math Functions`") c/FunctionsGroup -.-> c/recursion("`Recursion`") c/UserInteractionGroup -.-> c/user_input("`User Input`") c/UserInteractionGroup -.-> c/output("`Output`") subgraph Lab Skills c/variables -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/for_loop -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/function_declaration -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/math_functions -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/recursion -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/user_input -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} c/output -.-> lab-123240{{"`使用 C 语言计算数字的阶乘`"}} end

理解阶乘

一个数(例如 n)的阶乘(用 n! 表示)是该数本身及其之前所有数的乘积。我们可以表示为:

!n = n * !(n - 1)

例如:

!6 = 6 * 5 * 4 * 3 * 2 * 1 = 720
!12 = 12 * 11 * 10 * 9 * 8 * 7 * !6 = 479,001,600

重要点:

  • 0 的阶乘是 1
  • 负数的阶乘不存在

编写算法

以下是实现阶乘程序的步骤:

  1. 声明变量 nfact=1n 是需要计算阶乘的数,fact 是用于存储结果的变量。
  2. 从用户输入中读取 n 的值。
  3. 初始化循环迭代器 i=1,并运行循环直到 i<=n
  4. 在每次循环迭代中执行以下操作:
    • fact=fact*i
    • i++
  5. 输出 fact

编写 C 程序

在本程序中,我们将使用 for 循环来计算一个数的阶乘。

#include<stdio.h>
int main()
{
    int n,i;
    long int fact=1;
    printf("Enter the number: ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        fact=fact*i;    // 计算阶乘
    }
    printf("Factorial of %d is %ld",n,fact);
    return 0;
}

测试程序

让我们通过运行程序并检查输出来测试它。

Enter the number: 5
Factorial of 5 is 120

最终程序

以下是使用 for 循环计算一个数阶乘的最终程序:

#include<stdio.h>
int main()
{
    int n,i;
    long int fact=1;
    printf("Enter the number: ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        fact=fact*i;    // 计算阶乘
    }
    printf("Factorial of %d is %ld",n,fact);
    return 0;
}

总结

在本实验中,我们学习了如何使用 for 循环编写一个 C 程序来计算一个数的阶乘。我们使用了一个简单的算法,并按照逐步的过程实现了目标。该程序从用户处获取输入,通过循环计算阶乘,并将结果打印到屏幕上。我们还涵盖了一些重要知识点,例如变量的初始化以及 intlong int 数据类型的限制。

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