https://www.luogu.com.cn/problem/P1009
#include<iostream> //b数组是阶乘 a数组是阶乘的和
using namespace std;
const int N=1010;
int n;
int a[N],b[N];
int main()
{
cin>>n;
a[0]=b[0]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<=100;j++)
b[j]*=i;
for(int j=0;j<=100;j++)
{
b[j+1]=b[j+1]+b[j]/10;
b[j]%=10;
}
for(int j=0;j<=100;j++)
{
a[j]+=b[j];
a[j+1]=a[j+1]+a[j]/10;
a[j]%=10;
}
}
int i=100;
while(a[i]==0 && i>=0)
i--;
while(i>=0)
{
printf("%d",a[i]);
i--;
}
return 0;
}