分析:正常迭代肯定会超出范围,所以每次都要取模于1000000。
#include<iostream>
using std::cin;
using std::cout;
int main()
{
int n;
cin >> n;
int sum = 1;//总和
int num = 1;//记录每个阶乘
if (n == 1)
{
cout << sum;
}
else
{
for (int i = 2; i <= n; ++i)
{
num *= i;
num %= 1000000;
//取模于1000000,避免超出范围
sum += num;
sum %= 1000000;
//这个总和也要取模,不然也有可能超出范围
}
cout << sum;
}
}