//2-4 Factorial key:逐步取模 计时函数
Description
输入n,计算S=1!+ 2!+…+ n!的末6位(不含前导0)。这里,n!表示前n个正整数之积。
Input
输入n,,n≤ 106。
Output
输出S的末6位(不含前导0)。
Sample Input
10
Sample Output
37913
#include <iostream>
#include <cstdio>
#include <ctime>
using namespace std;
int n,s;
const int MOD=1000000;
int main(){//常数用大写变量名
scanf("%d",&n);
for(int i=1;i<=n;i++){
int factorial=1;//!!此处factorial是一个局部变量!
for(int j=1;j<=i;j++)
factorial=(factorial*j%MOD);//乘法与取模同级?谨慎为好
s=(s+factorial)%MOD;//一花括号之失
}
printf("%d\n",s);
printf("Time used = %.2f\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}