题目
用函数求 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