问题如下:输入n,计算S=1! + 2! + 3! + … +n!的末6位(不含前导0)。n<=10^6, n!表示前n个正整数之积。
样例输入:10 样例输出:37913
代码如下:
#include<iostream>
using namespace std;
int main()
{
const int MOD=1000000;
int n,s=0,t=1;
cin>>n;
for(int i=1;i<=n;i++)
{
t=(t*i)%MOD;
s=(s+t)%MOD;
}
cout<<s;
return 0;
}
可是循环语句到了i=25次的时候,t=9000000;
刚好取余运算之后变成0了,这样的情况怎么处理??