阶乘之和
例题:
输入n,计算S = 1!+2!+3!+...+n!的未6位(不含前导0)。n<=10^6,n!表示前n个正整数之积。
样例输入:
10
样例输出:
37913
分析:
这个任务看似不难,实际却有陷阱。先看如下代码:
代码1(有缺陷):
//abc
#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned long int n,S = 0;
scanf("%ld",&n);
for(int i=1;i<=n;i++)
{
int long factorial = 1;
for(int j=1;j <=i;j++)
factorial *= j;
S += factorial;
}
printf("%ld\n",S % 1000000);
return 0;
}
#include<stdio.h>
#include<time.h>
int main()
{
const int MOD = 1000000;
int n,S = 0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int factorial = 1