1 solutions
-
1
既然没人发题解我就发个吧
#include<bits/stdc++.h> using namespace std; string _add(string t,string g){ int a[10001]={},b[10001]={},c[10001]={}; int te=0; for(int i=t.size()-1;i>=0;i--){ a[i]=t[te]-'0'; te++; }te=0; for(int i=g.size()-1;i>=0;i--){ b[i]=g[te]-'0'; te++; } int k=0; for(int i=0;i<max(t.size(),g.size());i++){ c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; k++; } if(c[k]!=0)k++; string sum=""; for(int i=k-1;i>=0;i--){ sum+=char(c[i]+'0'); } return sum; } string _times(string t,string g){ int a[10001]={},b[10001]={},c[10001]={}; int te=0; for(int i=t.size()-1;i>=0;i--){ a[i]=t[te]-'0'; te++; }te=0; for(int i=g.size()-1;i>=0;i--){ b[i]=g[te]-'0'; te++; } int k=0; for(int i=0;i<t.size();i++){ for(int j=0;j<g.size();j++){ c[i+j]+=a[i]*b[j]; } } for(int i=0;i<t.size()+g.size();i++){ c[i+1]+=c[i]/10; c[i]%=10; k++; } for(;c[k]==0;k--); string sum=""; for(int i=max(k,0);i>=0;i--){ sum+=char(c[i]+'0'); } return sum; } int main(){ // string a,b; // cin>>a>>b; // cout<<_add(a,b); int n; cin>>n; string sum="0"; for(int i=1;i<=n;i++){ string temp="1"; for(int j=1;j<=i;j++){ temp=_times(temp,to_string(j)); } // cout<<temp<<" "<<sum<<endl; sum=_add(sum,temp); // cout<<sum<<endl<<endl; } cout<<sum; }
- 1
Information
- ID
- 9
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 2
- Tags
- # Submissions
- 11
- Accepted
- 4
- Uploaded By