简单n!
Time Limit: 1000MS Memory limit: 65536K
题目描述
给定一个数n(0 <= n <= 150), 求0到n中所有数的阶乘。
输入
题目有多组数据,处理到文件结尾。输入一个数n。
输出
输出阶乘,形式如:4! = 24.每组数据输出后跟一个空行。
示例输入
14
示例输出
0! = 11! = 10! = 11! = 12! = 23! = 64! = 24
这道题纠结了,一开始想用字符串处理,写了半天没写出来,老出错,最后用了二维数组做的
View Code
1 #include2 int main() 3 { 4 int n,i,a[151][301],j,x,b[151]; 5 for(i=0;i<151;i++) 6 for(j=0;j<301;j++) 7 a[i][j]=0; 8 a[0][300]=1; 9 b[0]=300; 10 for(i=1;i<151;i++) 11 { 12 j=300; 13 while(j>=b[i-1]) 14 { 15 x=a[i-1][j]*i+a[i][j]; 16 a[i][j]=x%10; 17 a[i][j-1]=x/10; 18 j--; 19 } 20 x=a[i][j]; 21 while(x!=0) 22 { 23 a[i][j]=x%10; 24 x/=10; 25 j--; 26 } 27 b[i]=j+1; 28 } 29 while(scanf("%d",&n)!=EOF) 30 { 31 for(i=0;i<=n;i++) 32 { 33 printf("%d! = ",i); 34 for(j=b[i];j<301;j++) 35 printf("%d",a[i][j]); 36 printf("\n"); 37 } 38 printf("\n"); 39 } 40 }
一直纠结这个b[]啊,最后也不知道纠结了个什么,反正就是改改,再改改就对了
唉。。。。