jietua @ 2022-11-16 17:21:48
如题,代码如下
#include<stdio.h>
int main(){
int Sn[10001]={0};
int n;
int y=0;
scanf("%d",&n);
for(int nn=1;nn<=n;nn++){
int a[10001]={0};
a[0]=1;
int x=0;
int b;
for(int i=1;i<=nn;i++){
b=0;
for(int j=0;;j++){
x=(j>x)?j:x;
a[j]*=i;
a[j]+=b;
b=a[j]/10;
a[j]%=10;
if(a[j]==0&&b==0&&j>=x) break;
}
}//求得单个n!
int tmp=0;
for(int i=0;;i++){
y=(i>y)?i:y;
Sn[i]+=a[i];
Sn[i]+=tmp;
tmp=Sn[i]/10;
Sn[i]%=10;
if(Sn[i]==0&&tmp==0&&i>=y) break;
}
}
for(int i=y-1;i+1;i--){
printf("%d",Sn[i]);
}
return 0;
}