尾部的零,计算出n阶乘中尾部零的个数
2017-08-07 16:42
225 查看
设计一个算法,计算出n阶乘中尾部零的个数
样例
11! = 39916800,因此应该返回 2
思路
也行你觉得很简单,不就是先计算11!=39916800,但是你想想计算11!现在还行,那如果是111111111111!,要计算多少时间呢?? 0是怎么出来的,只有2和5相乘的结果才会出现0,以在1到n之间看看有多少个数是2的倍数以及多少个数是5的倍数就行了。 此外,还有一些特殊情况,比如25这种,其是5和5相乘的结果,这种数和4相乘会出现2个0,同理125和8相乘会出现3个0,……, 每个25的倍数又会多一个0。因此125! 的末尾0的个数就是125/5 + 125/5/5 + 125/5/5/5。 就是625的个数,625乘以16会出现4个0,需要再加1,依次类推……
代码
class Solution { /* * param n: As desciption * return: An integer, denote the number of trailing zeros in n! */ public long trailingZeros(long n) { long sum=0; while(n>0) { n/=5; sum+=n; } return sum; } };
相关文章推荐
- lintcode第二题 计算n阶乘中尾部零的个数
- 计算n阶乘中尾部零的个数
- 设计一个算法,计算出n阶乘中尾部零的个数
- 计算出n阶乘中尾部零的个数
- 计算n阶乘中尾部零的个数
- Linux命令--计算阶乘及进制转换及统计尾部某一字符的个数
- 如何计算阶乘运算结果尾部有多少个零
- 计算出n阶乘中尾部零的个数
- LintCode 第二题 计算阶乘结果尾部的零
- LeetCode Factorial Trailing Zeroes(计算阶乘结果尾部有几个0)
- 计算n阶乘中尾部0的个数
- 阶乘尾部零的个数,递归计算
- 计算n阶乘中尾部零的个数--O(logN)算法
- 计算n阶乘中尾部零的个数
- 设计一个算法,计算出n阶乘中尾部零的个数
- 172. Factorial Trailing Zeroes (计算n的阶乘尾部有多少个零)
- HDU 1018 Big Number(阶乘位数计算)
- 蓝桥杯vip题目 阶乘计算
- C#_delegate - 调用列表 计算阶乘
- 计算阶乘