3913.阶乘之和 java 阶乘之和

Description:计算S=1!+2!+3!+...+n!的末6位(不含前导0). 这里n!表示前n个正整数的相乘积.Input:输入整数n(1<=n<=100000).Output:输出1!+2!+3!+...+n!的末6位(不含前导0)代码:#include<stdio.h>
intmain(){inti=1,n,s=1,sum=0;
scanf("%d",&n);
while(i<=n){s*=i;s%=1000000;sum+=s;i++;}sum%=1000000;
printf("%dn",sum);
return0;}
这题看描述是十分容易的,我却纠结了很久.还三番四次请陈选帮忙.
我纠结的主要原因是溢出的问题.
由于阶乘这种恶心的东西.很快位数会不够用的了.
3913.阶乘之和 java 阶乘之和
这里顺便反思一下自己.在我刚看到题目时,想着很容易实现,也没多加思考就开始打开VS自HI般地打起了代码.等写完后.运行小的整数还行.但大于忘记几的时候就搞不定了.这时才开始想问题在哪.当然问题其实是很明显的.阶乘这种东西的增加速度十分快.很快int就会用爆了.
那要想解决方法呀.这时我就去查比int还打的整型.遗憾的是没有.(我编译器的int和long是一样长的)然后又想到了用unsigned取消掉负号的定义来增多一位.但于事无补.阶乘增长速度太快了.无奈下百度了很多阶乘求和的代码.恍然明白其实只要每次求完都只保留后六位加起来就好了.这样下去就可以让你的结果不溢出.不过我的作法还是不好.之后就请教了陈选.这段代码就是他的.比我的简单很多.递交成功后试了几个结果我又困惑了:输100200201结果都是94013(忘了是不是.大概是这么个数)然后又怀疑有问题.其实这表明我还没完全弄懂这段代码.然后试了好几个数.最后确定从n=24开始后面都是94013.陈选又给了tips.就是2*5=10;然后后面又有10;总之后面有的数乘起来为10的倍数的.叠起来乘.就把后六位都变成0了.那就是说.自24起.后面所有数的后六位皆零.所以就保持在94013了.
搞懂后.是觉得很简单的.但那时的我脑子就没转过来.
所以也印前面博文讲过的.不要用思考后的脑子觉得问题有多简单.而要想自己花了多长时间才搞懂问题.所以我也不是羞于写出这些总结.尽管应该很多聪明人一下搞懂了.并且在我现在看来我的确觉得之前没想出很弱.不过我同时会把那句话挂心里.所以心里也没太难受.

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/201153.html

更多阅读

秦美人暗器进阶数据 秦美人五行进阶数据

秦美人暗器进阶数据——简介暗器作为秦美人中提升战斗力的一个重要手段,自然是广大玩家比较关注的一点。暗器和骑兵相同,共分为7阶相比同等级的暗器和骑兵,暗器的属性确实比骑兵高一点,再加上技能配合,暗器确实值得拥有!另一方面,升级暗

凤凰令实战升阶残章数据一览 神魔大陆凤凰令

不少朋友在问凤凰令实战升阶残章数据,下面聚侠带来凤凰令实战升阶残章数据一览,希望能对大家有所帮助。凤凰令实战升阶残章数据:初到成?????20-30????张残章成到会?????30-50????张残章会到纯???

如何用XP的计算器计算阶乘 阶乘计算器

如何用XP的计算器计算阶乘——简介在数学学习生活中,我们经常会遇到阶乘的计算,XP系统自带的计算器可以简单的实现阶乘的计算,下面让我们一起用XP系统的计算器计算阶乘吧!如何用XP的计算器计算阶乘——方法/步骤如何用XP的计算器计算

秦美人坐骑进阶完整攻略 秦美人四灵进阶数据

秦美人坐骑进阶的顺序依次为:白马、乌骓马、赤风驹、啸月苍狼、奔雷战熊、洪荒剑齿、瑞角夜豹、通海白泽、烈焰谛听、九幽龙皇。白马进阶到乌骓马:每次需消耗10000铜币和1个坐骑丹,1-2个坐骑丹即可进阶成功。  乌骓马进阶到赤风驹:

四阶魔方 四阶魔方还原公式图文教程 三阶魔方还原公式

本文四阶魔方公式图解是针对四阶魔方教程的降阶法做更多的解释和说明。四阶魔方被认为是2-5阶魔方玩法中最不好复原的,虽然五阶魔方的变化种类比4阶多,但是四阶魔方的中心块并不固定,也就不...顶层和底层都有风筝块和三角块,它们也

声明:《3913.阶乘之和 java 阶乘之和》为网友站在这里分享!如侵犯到您的合法权益请联系我们删除