输入n,计算S=1!+2!+3!+……+n!的末六位(不含前导0).n<=10^6.这里,n!表示阶乘.
输入:10
输出:37913
PS:由题意可知,只求后六位,所以只要S>=6位数,则S不变了.
#include <iostream>
using namespace std;
int main()
{
int n;
const int mod=1000000;
int sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int a=1;
for(int j=1;j<=i;j++)
{
a=(a*j%mod);
}
sum=((sum+a)%mod);
}
cout<<sum<<endl;
return 0;
}