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

CBeginner
立即练习

介绍

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

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

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

理解阶乘

一个数(例如 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 数据类型的限制。