/* 问题B 时间限制:10000/5000ms(JAVA /其他)内存限制:65536/32768K(JAVA /其他) 的总提交():12接受提交(S):4 字体:宋体宋体格鲁吉亚 字体大小:← → 问题说明 给定一个整数N(0≤N≤10000),你的任务是计算N! 输入 在一行中,一个N进程的文件的结束。 产量 对于每个N,输出N!在同一行中。 采样输入 1 2 3 样本输出 1 2 6 */ #include<cstdio> #include<cstring> int arr[10000]; int main() { int n; while(scanf("%d",&n)!=EOF) { int c=0,s; int i,j; memset(arr,0,sizeof(arr)); arr[0]=1; for ( i=2;i<=n;i++) { for (j=0;j<10000;j++) { s=arr[j]*i+c; arr[j]=s%10000; c=s/10000; } } int z,q; for( z=9999;z>=0;z--) { if (arr[z]){break;} } printf("%d",arr[z]); for (q=z-1;q>=0;q--){printf("%04d",arr[q]);} printf(" "); } return 0; }