#include<stdio.h>
int main(){
int s[1000]={0};
int n;
int i,j;
s[0]=1;
scanf("%d",&n);
for(i=2;i<=n;i++){
int c=0,sum=0;
for(j=0;j<1000;j++){
sum=i*s[j]+c;
s[j]=sum%10;
c=sum/10;
}
}
for(i=999;i>=0;i--) if(s[i]) break;
for(j=i;j>=0 ;j--) printf("%d",s[j]);
printf("\n");
return 0;
}
#include<stdio.h>
int main(){
int a[10000];
int i,j,c,m,n;
while(scanf("%d",&n)!=EOF){
a[0]=1;
m=0;
for(i=1;i<=n;i++) {
c=0;
for(j=0;j<=m;j++) {
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if(c>0) {m++;a[m]=c;}
}
printf("%d",a[m]);
for(i=m-1;i>=0;i--)
printf("%4.4d",a[i]);
printf("\n");
}
return 0;
}
一种是一个元素存一位,而另一个是一位可以存多位。