c语言实现n的阶乘三种方法

C语言实现n的阶乘有多种方法,这里介绍三种常用的方式。

方法一:循环计算阶乘

#include <stdio.h>
int main()
{
    int n, result = 1;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        result *= i; // 计算阶乘
    }
    printf("%d! = %d\n", n, result);
    return 0;
}

方法二:递归计算阶乘

#include <stdio.h>
int factorial(int n);
int main()
{
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    printf("%d! = %d\n", n, factorial(n));
    return 0;
}
int factorial(int n)
{
    if (n == 0) // 0的阶乘为1
    {
        return 1;
    }
    else // 递归计算阶乘
    {
        return n * factorial(n - 1);
    }
}

方法三:使用while循环计算阶乘

#include <stdio.h>
int main()
{
    int n, result = 1, i = 1;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    while (i <= n)
    {
        result *= i; // 计算阶乘
        i++;
    }
    printf("%d! = %d\n", n, result);
    return 0;
}

以上三种方法都可以计算n的阶乘,其中第二种方法使用了递归的方式,代码相对简单,但是可能会因为递归层数过多导致栈溢出。而第一种和第三种方法则使用循环计算阶乘,代码结构清晰,而且不易出错。

c语言n的阶乘函数调用