水题
发现规律,大于一个数的时候结果都是一个定值。
只要计算小于这个数的结果。
这个分界点在100之下。
#include <iostream>
#include <cstdio>
using namespace std;
long long solve(int x)
{
long long tmp=1;
for(long long i=1;i<=x;i++)
{
tmp*=i;
tmp=tmp%1000000;
}
return tmp;
}
int main()
{
int n;
scanf("%d",&n);
if(n>=100)
{
printf("940313\n");
return 0;
}
long long sum=0;
for(int i=1;i<=n;i++)
{
sum+=solve(i);
sum=sum%1000000;
}
cout<<sum<<endl;
return 0;
}