Arilk @ 2024-07-10 09:20:23
#include<bits/stdc++.h>
using namespace std;
int n;
int a[105],b[105];
void c(int x){
for(int i=1;i<=x;i++){
a[1]*=i;
for(int j=1;j<=100;j++) while(a[j]>=10) a[j]%=10,a[j+1]++;
}
return;
}
void j(){
for(int i=1;i<=100;i++){
b[i]+=a[i];
if(b[i]>=10) b[i]-=10,b[i+1]++;
}
return;
}
int main(){
for(int i=1;i<=100;i++) a[i]=0,b[i]=0;
a[1]=1;
cin>>n;
for(int i=1;i<=n;i++){
c(i);
j();
}
int m=100;
while(b[m]==0) m--;
for(int i=m;i>=1;i--) cout<<b[i];
return 0;
}
by zml1029 @ 2024-07-29 10:38:11
给你看看我的代码
#include<stdio.h>
int main()
{
int i,A[1005]={0},B[1005]={0},n,j;
scanf("%d", &n);
A[0]=B[0]=1;
for (i=2;i<=n;i++){
for (j=0;j<100;j++)
B[j]*=i;
for (j=0;j<100;j++)
if (B[j]>9){
B[j+1] += B[j]/10;
B[j]%=10;
}
for (j=0;j<100;j++){
A[j]+=B[j];
if (A[j]>9) {
A[j+1] += A[j]/10;
A[j]%=10;
}
}
}
for (i=100;i>=0&&A[i]==0;i--);
for (j=i;j>=0;j--) printf("%d", A[j]);
return 0;
}