编程计算并输出1~50之间的所有数的阶乘。
输入
输入一个50以内的正整数n。
输出
输出从1到n的阶乘,每个数的阶乘单独占一行。
样例输入 复制
15
样例输出 复制
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
提示
提示:用一个足够大的数组存储一个大数的阶乘,每个数组元素存储大数中的一位数字,输出结果不需要含有空格。为简单起见,不输出任何提示信息。
#include <stdio.h>
#define N 100
void fun(int);
int main(){
int i;
int n;
scanf("%d",&n);
for(i=1;i<=n;i++)
fun(i);
return 0;
}
void fun(int n){
int a[N]={1};
int i,j,m,b=0;
for(i=2;i<=n;i++){
for(j=0;j<=i+20;j++){
m=a[j]*i+b;
a[j]=m%10;
b=m/10;
}
}
for(i=N-1;i>0;i--)if(a[i]!=0)break;
printf("%d!=",n);
for(j=i;j>=0;j--)
printf("%d",a[j]);
printf("\n");
}