救救蒟蒻

P1009 [NOIP1998 普及组] 阶乘之和

ac代码: ```cpp #include<iostream> using namespace std; #define N 100000 int a[N],n,tot=1,lena=1,ans[N]; int main() { cin>>n; a[1]=1;ans[1]=1; for(int i=2;i<=n;i++) { for(int j=1;j<=lena;j++)a[j]*=i; for(int j=1;j<=lena;j++) { if(a[j]>9) { a[j+1]+=a[j]/10; a[j]%=10; if(j==lena)lena++; } } tot=max(lena,tot); for(int j=1;j<=tot;j++) ans[j]+=a[j]; for(int j=1;j<=tot;j++) if(ans[j]>9) { ans[j+1]++; ans[j]-=10; if(tot==j)tot++; } } for(int i=tot;i>=1;i--)cout<<ans[i]; cout<<endl; } ```
by Enoch2013 @ 2024-04-14 11:21:15


|