提交时间:2026-05-19 20:25:03
运行 ID: 441407
#include <bits/stdc++.h> using namespace std; string jiecheng(int n){ char a[300]; a[0]='1'; int len=1; for(int i=2;i<=n;i++){ int jin=0; for(int j=0;j<len;j++){ int t= i*(a[j]-'0')+jin; jin=t/10; a[j]=t%10+'0'; } while(jin>0){ a[len]=jin%10+'0'; len++; jin=jin/10; } } string s=""; for(int i=len-1;i>=0;i--){ s=s+a[i]; } return s; } string jia(string s1,string s2){ char s3[300]; if(s1.length()<s2.length()){ swap(s1,s2); } int len1=s1.length(); int len2=s2.length(); for(int i=0;i<len1-len2;i++ ){ s2="0"+s2; } int jin=0; for(int i=len1-1;i>=0;i--){ int t=s1[i]-'0'+s2[i]-'0'+jin; jin=t/10; s3[i]=t%10+'0'; } string ss=""; if(jin>0){ ss=ss+"1"; } for(int i=0;i<len1;i++){ ss=ss+s3[i]; } return ss; } int main() { string s1="0",s2; int n; cin>>n; for(int i=1;i<=n;i++){ s2=jiecheng(i); //算阶乘 s1=jia(s1,s2); //算加 } cout<<s1; return 0; }