设计一个算法,算出 n 阶乘有多少个尾随零。
你算法的时间复杂度应为 O(log n) 。

显然,暴力是不符合题意的,效率为o(n)所以pass掉暴力,然后我开始也没想出来,查了会资料,结果发现几乎所有CSDN的解法都是复制粘贴同一份资料,气死了。所以我来写一份记录下。
首先我们要观察规律,分析题干,他是要我们找尾巴后面跟着几个0,如果是暴力解法的话,就是算出阶乘后的结果,然后进行遍历/10 %10记录结果。大家要从暴力解法找出一些规律啊,暴力解法本质上就是寻找阶乘中包含10因子的个数,我们再来看看阶乘的规律,就拿25!来说吧

20!=1*2*3*4*5*6*7*8*9*(2*5)*11*12*13*14*(3*5)*16*17*18*19*(5*4)*21*22*23*24*(5*5)

我们可以发现,一个10因子的产生是由2*5组合的,2因子的个数肯定比5因子个数多,你把6,8…拆开就有一个2因子,所以我们只需要找出有多少个5因子个数即可,观察规律我们能发现每隔5个数就能找到1个5,在观察规律发现每隔25个数我们能找到2个5(但是上一次的5已经统计过一次了,所以记为1次),同理125。。。。这样说还不明白的话,看看代码吧

class Solution {public int trailingZeroes(int n) {int res=0;for(long m=5;n/m>0;m*=5){res+=n/m;}return res;}
}

力扣刷题-阶乘尾数有多少个0相关推荐

  1. 力扣刷题记录--哈希表相关题目

    当遇到需要快速判断一个元素是否出现在集合里面的时候,可以考虑哈希法,牺牲一定的空间换取查找的时间. java常用的哈希表有HashMap.HashSet以及用数组去模拟哈希,这几种方法各有优劣. 数组 ...

  2. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  3. 《剑指Offer》力扣刷题笔记(03-10)

    <剑指Offer>力扣刷题笔记(03-10) 最近确实有点闲,想在进组搬砖之前找点有意义的事干,于是,就开始刷<剑指Offer>.<程序员面试金典>等书上的题目,也 ...

  4. 力扣刷题之二叉树的层序遍历

                                                      Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...

  5. 『力扣刷题』5275_找出井字棋的获胜者 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...

  6. 『力扣刷题』5276_不浪费原料的汉堡制作方案 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5276_不浪费原料的汉堡制作方案 * 5276. 不浪费原料的汉堡制作方案 显示英文描述* 用户通过次数212* 用 ...

  7. 『力扣刷题』5238_找出给定方程的正整数解 解题代码

    html: embed_local_images: true embed_svg: true offline: true toc: undefined print_background: false ...

  8. 力扣刷题全局变量WA,局部变量AC的问题

    力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...

  9. 力扣刷题pdf(java版本,内含暗黑版和光明版),都在这里了

    BAT大佬力扣刷题pdf,都在这里了! ​相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手! 我找了很久,今天终于让找到了Java版leetcode算法题解笔记,强烈建议先按照本篇介绍pd ...

最新文章

  1. 谁是真正的深度学习?英特尔高管与AI大神再“论剑”
  2. Linux下mysqldump的使用
  3. mybatis批量更新报错XXXXX-Inline
  4. html中的盒子设置时间设置,CSS中的间距设置与盒子模型
  5. 【Python基础入门系列】第09天:Python tuple
  6. 学术人必备!懒人制作学术会议Oral/Spotlight Video指南
  7. linux git编译安装目录,Linux(centos) 环境下如何源码编译安装git
  8. 字符串转数组的几种方法和字符串的截取
  9. 问题:html控件中sleect的Option()的用法
  10. 利用微软输入法 入侵2003服务器,打开Word或Excel也可被攻击 金山卫士推送微软补丁...
  11. python win32api教程_Python win32api.GetSystemMetrics方法代码示例
  12. Webstorm汉字乱码时
  13. 油猴Tampermonkey及脚本使用
  14. HTML/CSS 长度单位 px和pt的区别
  15. 高考导数选择题解题方法
  16. BIGEMAP手机离线地图——基于OruxMaps离线高清卫星地图制作发布
  17. Win7 VNC远程连接Centos桌面
  18. win10进入安全模式和退出安全模式
  19. oracle ora 3136,ALERT日志中常见监听错误:ORA-3136错误的排查
  20. 技术汇总:第七章:三种验证方式

热门文章

  1. 使用 Numba 让 Python 计算得更快:两行代码,提速 13 倍
  2. numba 高级用法
  3. win7音频 audio service调节单个程序音量控制
  4. 天津教育杂志天津教育杂志社天津教育编辑部2022年第36期目录
  5. MySQL8中的开窗函数
  6. reaver test
  7. 标准单元的 Cell 种类
  8. day10-字符串作业
  9. css如何设置表格行间距为0,css,表格行间距.doc
  10. manifest.mf 详解