long factorial(int n) { if (n == 0) { return 1; } return n * factorial(n - 1);}

n的阶乘用c语言怎么写

来源:这里教程网 时间:2026-02-21 16:51:07 作者:

C 语言中计算阶乘

问题:如何用 C 语言计算 n 的阶乘?

回答:

C 语言中计算阶乘通常使用递归函数。以下是步骤:

立即学习“C语言免费学习笔记(深入)”;

1. 创建递归函数

<code class="c">long factorial(int n) {
    if (n == 0) {
        return 1;
    }
    return n * factorial(n - 1);
}</code>
边界条件:当 n 为 0 时,阶乘定义为 1。 递归调用:如果 n 大于 0,则将 n 乘以 n-1 的阶乘,继续计算直至递归边界条件。

2. 主函数中调用函数

<code class="c">int main() {
    int n;
    printf("请输入数字 n:");
    scanf("%d", &n);
    long result = factorial(n);
    printf("阶乘为:%ld", result);
    return 0;
}</code>
输入 n:从用户处获取要计算阶乘的数字。 调用阶乘函数:计算 n 的阶乘并存储在 result 变量中。 输出结果:将结果打印到控制台。

示例用法:

如果输入 n = 5,程序将输出:

<code>阶乘为:120</code>

注意:

递归函数会递归调用自身,因此堆栈空间必须足够大。 对于较大的 n 值,该算法可能会导致堆栈溢出。为了解决这个问题,可以使用迭代算法来计算阶乘。

相关推荐