题目

用函数求 n 的阶乘

思路

本题用函数计算 n!main 只负责读入和输出。

fact(n) 里用循环累乘或递归;n 较大时用 long long 并注意溢出上限。

解题分析

把阶乘抽成函数,main 只负责 IO。函数可复用在第 59 题批量判断里。注意返回类型能装下 n!。

完整程序

#include <stdio.h>

static long long fact(int n)
{
    long long r = 1;
    for (int i = 2; i <= n; i++) {
        r *= i;
    }
    return r;
}

int main(void)
{
    int n;
    if (scanf("%d", &n) != 1 || n < 0) {
        return 1;
    }
    printf("%lld\n", fact(n));
    return 0;
}

运行示例

输入:

6

输出:

720