南邮 OJ 1093 阶乘之和

阶乘之和

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 2223            测试通过 : 545 

比赛描述

输入n,计算S=1!+ 2!+…+ n!的末6位(不含前导0)。这里,n!表示前n个正整数之积。

输入

输入n,,n≤ 106

输出

输出S的末6位(不含前导0)。

样例输入

10

样例输出

37913

题目来源

刘汝佳《算法竞赛入门经典》




#include<iostream>
using namespace std;
int main(){
	int i,n;
	long p,sum,result[25];
	for(i=1,p=1,sum=0;i<25;++i){
		p *= i;
		p %= 1000000;
		sum += p;
		sum %= 1000000;
		result[i] = sum;
	}
	cin>>n;
	if(n>=25)
		cout<<940313<<endl;
	else
		cout<<result[n]<<endl;
}




你可能感兴趣的:(ACM,阶乘之和,南邮OJ)