题目描述:

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.

解题思路:

这个题目给的评级是easy,其实只要想到要求n!中0的个数,能够得到0的只有:2,4,5,10,100.。。。而这里面又以5最为稀缺,所以说我们可以得出阶乘的最终结果中的0的数量等于因子中5的数量,比如说10,阶乘含两个0,因为有5,10;30含7个0,因为有5,10,15,20,25(25=5*5),30。

那么怎么求出有多少个呢?

简单的想法是:令\(f(n)\)表示\(n!\)有多少个0

\[f(n)=f(5)+2 \times f(5^2)+3 \times f(5^3)+\dots
\]

\[f(n)=n/5+f(n/5)
\]

递归版本:

class Solution:
# @return an integer
def trailingZeroes(self, n):
if n < 5:
return 0
else:
return n/5 + self.trailingZeroes(n/5)

迭代版本:

class Solution:
# @return an integer
def trailingZeroes(self, n):
counter = 0
while n:
counter += n / 5
n /= 5
return counter

最新文章

  1. exel按行查找或按列查找
  2. AWS-CDH5.5安装-软件下载
  3. 【读书笔记】iOS-数据交换格式
  4. ExtJS4笔记 Data
  5. C# 判断是否联网
  6. 【云计算】Docker删除名称为none的Image镜像
  7. HTTP Status 500 - Servlet.init() for servlet htmlWebConfig threw exception
  8. 建立临时的表 数据 空值 与 NULL 转换
  9. java转义字符
  10. 《virtualbox完全学习手册》
  11. C#与C++、Java之比较概览
  12. HDU 1890 Robotic Sort | Splay
  13. ACE_TEST1.obj : error LNK2019: 无法解析的外部符号
  14. php 制作圆形图片
  15. mysql主从原理及配置
  16. 魔力Python--if __name__ == &#39;__main__&#39; 的理解
  17. 上传第三方jar包至maven私服,以geotools为例
  18. applet jre冲突问题
  19. 03-02 Java键盘录入
  20. 批量远程执行linux服务器程序--基于paramiko(多线程版)

热门文章

  1. HTML5图形图像处理技术研究
  2. eclipse注释快捷键(含方法注释)
  3. Win7上安装Linux双系统
  4. hosts manager——hosts配置管理工具
  5. sublime text 3 3114 注册码
  6. BZOJ 4569 萌萌哒
  7. 非对称加密算法——RSA
  8. LoadRunner 函数之lr_xml_get_values
  9. 前端进阶试题css(来自js高级前端开发---豪情)既然被发现了HOHO,那我就置顶了嘿嘿!觉得自己技术OK的可以把这套题目做完哦,然后加入高级前端的社区咯
  10. NOSDK--一键打包的实现(二)