首页 > 代码库 > [leetcode] Factorial Trailing Zeroes
[leetcode] Factorial Trailing Zeroes
题目:(Math)
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
题解:
首先列几个例子找一找规律。
然后发现
5!有一个0,
10!有两个0,
15!有三个0,
20!有四个0,
25!有六个0,。
可以看出当n大于等于5的时候就能产生后缀的0,因为5*2=10.而2又肯定不会缺因为只要有偶数就有2.
所以我们只要统计n!包含5的数目就可以。
一开始我以为只要n/5 就可以。后来发现例如25,里面包含了俩个5,25=5*5.所以发现5的总数 等于n/5 后的数再除以5 直到其小于5.
public class Solution { public int trailingZeroes(int n) { if(n<4) return 0; int res=0; while(n>=5) { res+=n/5; n=n/5; } return res; }}
[leetcode] Factorial Trailing Zeroes
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。