输入整数n(n<1000000),计算S = 1!+2!+3!+···+的末六位。
样例输入:10
样例输出:37913
#include <iostream>
using namespace std;
int main()
{
int S = 0;
int n;
cin>>n;
int MOD = 1000000;
for(int i = 1; i <= n; i++)
{
int factorial = 1;
for(int j = 1 ; j <= i; j++)
//进行取余
factorial = factorial*j%MOD;
//进行取余
S = (S + factorial)%MOD;
}
cout<<S;
return 0;
}
程序中的内容MOD是用来取余,随着一个n和S越来越大越大,就有可能会出现溢出情况。采用分部取余可以来有效避免的溢出问题。