循环的代价
来源:互联网 发布:支付系统网络硬件架构 编辑:程序博客网 时间:2024/05/16 09:16
例题2-4:阶乘之和
输入n,计算s=1!+2!+3!+……+n!的末6位(不含前导0)n<=10000.
样例输入:
10
样例输出:
37913
输入n,计算s=1!+2!+3!+……+n!的末6位(不含前导0)n<=10000.
样例输入:
10
样例输出:
37913
实现一:
#include <stdio.h>int main(){int n,s=0;scanf("%d",&n);for(int i=1;i<=n;i++){int factorial=1;for(int j=1;j<=i;j++)factorial=factorial * j;s=s+factorial;}printf("%d\n",s%1000000);return 0;}
实现一中运行输入100,输出-961703,明显溢出了,所以要采用实现二中的算法来实现,实际上25的阶乘有六个0,在25之后(包含25)的阶乘对结果无影响,所以当n>24时只需计算1!+2!+……+24!
实现二:
/*输入n,计算s=1!+2!+3!+……+n!的末六位(不含前导零)*/#include <stdio.h>/*从40开始答案就不便了,聪明的读者已经知道了,25!末尾有6个零,所以从第25项开始后面的项都不会影响和的末六位数字*/int main(){const int MOD=1000000;int n,s=0;scanf("%d",&n);if(n>24)n=24;for(int i=1;i<=n;i++){int factorial=1;for(int j=1;j<=i;j++)factorial=(factorial * j % MOD);s=(s+factorial)%MOD;}printf("%d\n",s);return 0;}
0 0
- 循环的代价
- 循环前缀的代价
- 循环的代价
- 从《循环的代价》中学到的
- <time.h> 检测循环的代价
- 三无的代价
- 成熟的代价
- 游泳的代价
- 一套房子的代价
- 成长的代价
- 一套房子的代价
- 辛苦一生的代价
- 爱的代价 - 张艾嘉
- 爱的代价
- 软件集成的代价
- 成长的代价~~
- 爱的代价
- 性能的代价(ZT)
- DXP里修改丝印大小
- 杭电ACM1180——诡异的楼梯~~广度优先搜索
- 【连载】Java学习系列(007)——继承和多态
- 手机平台是指什么
- 利用Filter禁止直接访问JSP
- 循环的代价
- 线程同步四机制
- PHP 难解
- 强大全面的表单封装工具类
- Java面向第三天
- 就从今天开始吧
- td中文字靠上
- 进程死锁
- 堆和栈的区别