Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
Input
One N in one line, process to the end of file.
Output
For each N, output N! in one line.
Sample Input
1 2 3
Sample Output
1 2 6题目虽然简单,但是体现的是一种思想!用数组保存数据,学会这个方法,妈妈再也不用担心我学习了耶!!解答:#include<stdio.h> #include<string.h> int main() { int a,i,j; int d[35662];//10000的阶乘为35660位,所以用这么大的数组。 int s,c; while(scanf("%d",&a)!=EOF) { memset(d,0,sizeof(d));//初始化数据,另其为零 d[0]=1;//门户 for(i=2;i<=a;i++) { c=0;//存储余数 for(j=0;j<=35661;j++) { s=i*d[j]+c; d[j]=s%10; c=s/10; } } for(i=35661;i>=0;i--)//除去前面的零 if(d[i]) break; for(j=i;j>=0;j--)//由高位到低位输出 printf("%d",d[j]); printf("\n"); } return 0; }