-
时间限制:
- 5000ms 内存限制:
- 40000kB
-
描述
-
对于给出的N,计算N(0<=n<=1000)的阶乘。
输入
- 有多组测试数据,每组占一行,为整数N,输入到文件结束。 输出
- 对于每组测试数据,输出一行结果。 样例输入
-
1
-
2
-
3
样例输出
-
1
-
2
-
6
#include <stdio.h>int a[20000];int main(){ int n, i, j, flag, length, t; while(scanf("%d", &n)!=EOF) { a[0] = 1; if(n==0) { printf("1\n"); continue; } length = 1; for(i=1; i<=n; i++) { flag = 0; for(j=0; j<length; j++) { t = i * a[j]; a[j] = ( t + flag) % 10; flag = ( t + flag) / 10; } while(flag!=0) { a[j] = flag % 10; j++; length++; flag = flag / 10; } } for(i=length-1; i>=0; i--) { printf("%d", a[i]); } printf("\n"); } return 0;}