【题目描述】
输入nn,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≤10^6, n!表示前n个正整数之积。
【输入】
输入n。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
37913
【提示】
【数据范围】
对于所有数据,1≤n≤999999。
【题目链接】
#include <stdio.h>
int main()
{
int n, i;
scanf("%d", &n);
long long sum = 0;
long long factorial = 1;
for (i = 1; i <= n; i++)
{
factorial = (factorial * i) % 1000000; // 只保留末6位
sum = (sum + factorial) % 1000000; // 累加并只保留末6位
}
printf("%lld\n", sum);
return 0;
}