因为n!是一个非常大的数,所以不能通过常规的方法,求出n!的值之后,再判断它的末尾有多少个0.

这里的关键就是,n!的末尾有多少个0,取决于n!中,质因数 5 的个数。

如:12!=479001600    ,其中,5、10各含有1个质因数5,所以12!末尾有2个0

代码1:

#include <iostream>
using namespace std;
int main(void)
{int n,i,j,m;m=0;cin>>n;for(i=1;i<=n;i++){j=i;while(!(j%5)){m++;j/=5;}}cout << m <<endl;return 0;
}

代码2:

这个对代码1的改进

#include <iostream>
using namespace std;
int main(void)
{int n,m;m=0;cin>>n;while(n){m+=n/5;n/=5;}cout<< m <<endl;return 0;
}

转载于:https://blog.51cto.com/anglecode/1631158

编程之美3——N!末尾有多少个0相关推荐

  1. 编程之美2.10:寻找数组中的最大值和最小值

    编程之美2.10: 对于一个有N个整数组成的数组,需要比较多少次才能把最大值和最小值找出来呢? 算法的思想是: 分而治之 测试数据:---------------------------------- ...

  2. 编程之美2.1 求二进制中1的个数

    最近一段的时间,一直在看编程之美之类的算法书籍,刚开始看编程之美,感觉到难度太大,有时候也不愿意去翻动这本书,不过,经过一段时间的修炼,我也彻底的喜欢上这本书了, 书中的算法涉及到很多方面,树,链表, ...

  3. 2017“编程之美”终章:AI之战勇者为王

    编者按:8月15日,第六届微软"编程之美"挑战赛在选手的火热比拼中圆满落下帷幕."编程之美"挑战赛是由微软主办,面向高校学生开展的大型编程比赛.自2012年起, ...

  4. Java 并发编程之美:并发编程高级篇之一-chat

    借用 Java 并发编程实践中的话:编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作 ...

  5. Java 并发编程之美:并发编程高级篇之一

    借用 Java 并发编程实践中的话:编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作 ...

  6. 编程之美2.2 不要被阶乘吓倒

    开始看到这道题目的时候,我还以为是利用字符串表示整型数的思想,后来一看,由于是一个数的阶乘,那么,如果这个数本身就很大,那么,即使是利用字符串表示也是不合理的,所以,看了下这道题的解释,书中给出了一个 ...

  7. nefu 753 n!末尾有多少个0

    Problem : 753 Time Limit : 1000ms Memory Limit : 65536K description 计算N!末尾有多少个0 input 输入数据有多组,每组1行,每 ...

  8. N的阶乘末尾有多少个0

    例如:N = 5,N! = 120.末尾有1个0. 分析:想到这个问题,有人可能第一反应就是现求出N!,然后再根据求出的结果,最后得出N!的末尾有多少个0.但是转念一想,会不会溢出,等等. 其实,从& ...

  9. 每天一道LeetCode-----计算n的阶乘末尾有多少个0

    Factorial Trailing Zeroes 原题链接Factorial Trailing Zeroes 计算n!(n的阶乘)末尾有多少个0 思路: 0实际上来源于10,而10来源于2×5,所以 ...

最新文章

  1. 与跨国巨头合作,做羊还是做狼? --- 我看SAP取消HAND合作伙伴资格
  2. spring boot 学习(二)spring boot 框架整合 thymeleaf
  3. linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)
  4. 数据结构(七)图的遍历(递归非递归方法)
  5. C语言里if语句变量作为判断条件,C语言教学(九-上)if else判断语句
  6. 计算机出现假桌面怎么解决办法,win10系统apphangxprocb1引起桌面假死怎么解决【图文】...
  7. 《电子元器件的可靠性》——第1章概述
  8. React中受控组件和非受控组件
  9. python之修改pip为清华源
  10. 企业级监控软件使用zabbix key监控nginx status各种状态
  11. 接口测试之抓包工具fidder
  12. XRD测试常见问题及解答(三)
  13. 【高速PCB电路设计】2.高速电路DDR原理图概述
  14. CSS 巧妙实现文字二次加粗再加边框
  15. python做音频格式转换
  16. 极客云原生营-云原生知识
  17. SpringBoot+vue实现前后端分离的校园志愿者管理系统
  18. java 解析邮件_JavaMail:在Web应用下完整接收、解析复杂邮件
  19. linux传输系统架构,Linux后端程序成长关键技术——底层体系结构
  20. 华为的全闪存存储之路

热门文章

  1. 关于JS中的定时器!!!
  2. Hadoop的SequenceFile读写实例
  3. Hadoop:mapreduce的splitsize和blocksize
  4. proguard android 配置,android – Proguard忽略库的配置文件
  5. 新快现类似产品_小米全新折叠屏产品曝光,预计今年还有更多折叠屏产品亮相...
  6. Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)
  7. java循环基础知识_java基础知识—循环结构
  8. oracle00109,ORA-01034: 、ORA-01078: 和 LRM-00109: 的解决方法,ora-01034ora-01078
  9. idea分支如何刷新显示最新
  10. 计算机系统基础:校验码知识笔记