| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 441407 | 方相宜 | 【C6-4】求1!+2!+3!+4!+...+n! | C++ | 通过 | 100 | 1 MS | 264 KB | 943 | 2026-05-19 20:25:03 |
#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; }