面试题目: 给定一个数n,求1*2*3*...*n 结果中末尾0的个数。

1. 我们先看一个特殊的例子,假设n是100的情况下。

根据题目的意思,我们需要求的是1*2*3*...*100的结果中末尾0的个数。

回顾一下小学4年级的数学知识,一个数末尾加一个0,相当于乘上一个10。

ok,假设有一个能够被10整除的数sum,那么sum = 10*N => 2*5*N。例如 50 = 10*5 = 2*5*5

好了,通过上面,我们可以发现,10的个数是由2和5的个数,并且有 10的个数 = min(2的个数,5的个数)。

好了,回到题目,假设1*2*3*...*100 的结果是sum,那么sum = 10*N => 2*5*N。

根据上面的结论,实际上题目是要求结果中10的个数,即2和5的最小的个数。

根据等式,1*2*3*4*...*100,可以发现4、6、8都包含2,因此2的个数比5来的多,因而10的个数决定于5的个数。

2. 要怎么求5的个数呢?

根据1~100这100个数,能够产生5的有5,10,15,20,25...95,100,并且如果数是5的次方,则包含多个5。

因此1~100这100个数,总的5的个数 100/5+100/25 = 24. 因此1*2*3*...*100结果包含24个0

扩展到n,1*2*3*...*n的结果中末尾包含0的个数,等价于 n/5 + n/25 + n/125 + ...

从一道面试题说去 2相关推荐

  1. C#在类型实例化时都干了什么:从一道笔试题说开去

    C#在类型实例化时都干了什么:从一道笔试题说开去 原文来自:http://www.cnblogs.com/instance/archive/2011/05/27/2059409.html 前一阵子我参 ...

  2. 从一道面试题谈谈一线大厂码农应该具备的基本能力

    作者:Yura Shevchenko 来源:skypixel.com 关于一线码农的面试,我想说 求职面试在绝大部分人来说都是必不可少的,自己作为求职者也参与了不少面试(无论成功或者失败),作为技术面 ...

  3. 有的线程它死了,于是它变成一道面试题

    来自:why不止技术 有些线程它活着,但它躺在池中碌碌无为: 有的线程它死了,于是它变成一道面试题. 这次的文章,要从一次阿里巴巴的面试说起. 我记得那天是周一,刚刚经历过周末过的放松,干劲十足的我正 ...

  4. 每日一道面试题(第7期)---Android补间动画与属性动画的区别

    零零碎碎的东西总是记不长久,仅仅学习别人的文章也只是他人咀嚼后留下的残渣.无意中发现了这个每日一道面试题,想了想如果只是简单地去思考,那么不仅会收效甚微,甚至难一点的题目自己可能都懒得去想,坚持不下来 ...

  5. (转)从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节

    背景:学习java的基础知识,每次回顾,总会有不同的认识.该文系转载 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的, ...

  6. 从一道面试题谈起,大厂到底看重程序员的什么能力?

    唐磊,他谦逊的自我介绍,是"在阿里云打工的清华学渣". 上周的一篇<字符串比较,居然暗藏玄机>,我最早是在唐磊<这10行比较字符串相等的代码给我整懵了>里看 ...

  7. 一道笔试题--求二进制数1的个数

    要进一家新公司难免要进行笔试,虽然笔试通过的人很多都有背题之嫌,但是统计意义上最起码可以看出一个程序员的认真程度,毕竟很多公司的考题也不是自己创的,也是在网上偷的,允许公司偷题就必须允许应聘者偷答案. ...

  8. h5 bootstrap 小程序模板_一道面试题小程序与H5的区别

    抛砖 此文是一道面试题,又不仅仅是一道面试题 面试题,在各个技术社区里都是一个永不落伍的话题,好像大多数人临面试前都会狂刷面试题,恨不得把所有面试题都看一遍,要说有用没,当然有用,因为大部分面试题确实 ...

  9. PHP递归创建多级目录(一道面试题的解题过程)

    今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...

最新文章

  1. Android网络框架Volley的快速使用
  2. linux boost filesystem程序链接,在Linux中链接Boost库
  3. VMware HA实战攻略之四VMware HA安装及配置
  4. 修改sh文件_修改Android分区大小
  5. IAR之函数和变量的绝对地址定位
  6. flink和kafka区别_Apache Flink和Kafka入门
  7. Hadoop开发第2期---虚拟机中搭建Linux
  8. 如何使用分析模型 — 1. 关联图,从乱麻中里出头绪
  9. BZOJ4377: [POI2015]Kurs szybkiego czytania
  10. A股开盘:深证区块链50指数涨0.02%,仁东控股跌停
  11. 开发机器学习应用程序的步骤
  12. PAT甲级1141 Ranking of Institutions
  13. jpg怎么合成一份_如何将多张图片合成一个文件
  14. CNTV视频回看下载地址
  15. 结构体习题:有5个职工,每个职工的数据包括:职工号、姓名、工资,编写程序要求从键盘上输入职工们的数据,输出高于平均工资的职工信息及高于平均工资的职工人数。——[C语言]入门基础编程 1092
  16. 银行月利率年利率转换算法说明和工具
  17. BLDC无刷直流电机之电机驱动的组成
  18. linux锁屏自动登录,Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...
  19. excel表格锁定怎么解锁_让用户锁定或解锁Excel工作簿
  20. Node.js 模块化的操作,简单明了的代码帮助你明白后端的实现和前端之前的交互,及解决跨域等问题

热门文章

  1. Meterpreter
  2. JAVA 重载,重写(覆盖)个人理解
  3. 转】Spark DataFrame小试牛刀
  4. CodeForces 679B Bear and Tower of Cubes
  5. php导出excel数据使用csv替代xls格式
  6. HttpClient用法
  7. QT自定义窗口插件在QT Creator的应用
  8. org.hibernate.hql.ast.QuerySyntaxException: ? is not mapped
  9. 【BZOJ1022】小约翰的游戏(博弈论)
  10. [转]windows中断与共享的连接(samba)