RT。。。
#include<bits/stdc++.h>
using namespace std;
string ans="0",s;
string jia(string s1,string s2){
string ss;
int top=0;
int flag=0,a[505]={},b[505]={},c[505]={},s1len=s1.length(),s2len=s2.length();
int leng=(s1len>s2len?s1len:s2len);
for(int i=0;i<=s1len-1;i++){
a[i]=s1[i]-'0';
}
for(int i=0;i<=s2len-1;i++){
b[i]=s2[i]-'0';
}
for(int i=0;i<leng;i++){
c[i]=a[i]+b[i]+flag;
flag=0;
if(c[i]>9){
flag=1;
c[i]%=10;
}
}
if(flag){
ss+="1";
top++;
}
for(int i=leng-1;i>=0;i--){
ss[top++]=c[i]+'0';
}
return ss;
}
string cheng(int xx){
string x=to_string(xx);
int slen=s.length(),xlen=x.length();
reverse(s.begin(),s.end());
reverse(x.begin(),x.end());
int a[100]={},b[100]={},c[1000]={};
for(int i=1;i<=slen;i++){
a[i]=s[i-1]-'0';
}
for(int i=1;i<=xlen;i++){
b[i]=x[i-1]-'0';
}
reverse(s.begin(),s.end());
for(int i=1;i<=slen;i++){
for(int j=1;j<=xlen;j++){
c[i+j-1]+=a[i]*b[j];
c[i+j]+=c[i+j-1]/10;
c[i+j-1]%=10;
}
}
int leng=slen+xlen,top=0;
if(c[leng]!=0) leng++;
string ss;
for(int i=leng-1;i>0;i--){
ss[top++]=c[i]+'0';
}
s=ss;
return s;
}
int main(){
int n;
cin>>n;
s="1";
for(int i=2;i<=n;i++){
ans=jia(ans,cheng(i));
}
cout<<ans;
return 0;
}
c⌒っ゚Д゚)っ救命