输入n, 计算S=1!+2!+3!+...+n!的末6位(不含前导0)。n≤10^6。这里,n!表示前n个正整数之积。
样例输入:10
样例输出: 37913
注意每一次循环初始化 fac=1 ;因为输出末六位,所以输出时对10^6取模。
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
while(cin>>n){
int ans=0;
for(int i=1;i<=n;i++){
int fac=1;
for(int j=1;j<=i;j++){
fac*=j;
}
ans+=fac;
}
int mod=1e6;
cout<<ans%mod<<endl;
}
return 0;
}