您的位置:首页 > 其它

求阶层

2013-12-04 16:44 190 查看
#include<stdio.h>
#include<time.h>
int main()
{
const int MOD=1000000;
int i,j,n,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
int factorial=1;
for(j=1;j<=i;j++)
factorial=(factorial*j%MOD);
s=(s+factorial)%MOD;
}
printf("%d\n",s);
printf("Time used=%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
}
在这个里面加入了一些技巧,避免溢出,程序的主要功能是输出后六位。
数论里面的一个结论:要计算只包含加法,减法和乘法表达式除以正整数n的余数,可以在每步计算之后对n 取模,结果不变!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: