【leetcode】 Factorial_Trailing_Zeroes
来源:互联网 发布:精品家具淘宝店 编辑:程序博客网 时间:2024/05/16 02:46
题目:
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
/* * 考虑如下情况: * 计算23!的末尾有多少0 * 思路: * 如果要末尾出现0,则必须在乘积中出现 10或者10的倍数。所以在阶乘中找出能有多少个乘积为10或者10的倍数,则知道阶乘有多少个0 * 我们知道只有在 2n*5m 时,才会出现0; 且2的倍数情况多于5,鉴于此,我们只需要统计5的倍数有多少就知道多少个0; *23/5=4,可知,23!末尾有4个0 * * 计算101!的末尾有多少0 * 思路: * 在这里,与上面略微有些区别:最明显一个:假设100,他是增加两个0而不是一个0; * 此外,例如25. 25*2 =50 ; 此处的确增加一个0;但是50*2=100又增加一个0;(2的数量多于5),所以不能简单的用5来断定0的数目 * 但是我们可以发现如下一个规律:25=5*5 所以每一个25或者25的倍数,都应该多计算一个0; * 因此对已101: 101/5=20 * 101/25=4 * 101!的阶乘尾部有20+4=24个0 * * 计算1000!的末尾有多少0 * 思路: * 同样的问题还存在于5^3之中,以此类推即可。 * */
public int trailingZeroes(int n) { int count=0; if(n==0) return 0;while(n!=0){count+=n/5;n=n/5;} return count; }
0 0
- 【leetcode】 Factorial_Trailing_Zeroes
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- VS2010发布安装程序注意事项
- 【leetcode】 Excel_Sheet_Column_Title
- Qt帮助系统
- java.util.concurrent包API学习笔记
- Qt 扩展-扩展部件和插件
- 【leetcode】 Factorial_Trailing_Zeroes
- (视频)《快速创建网站》2.1 在Azure上创建网站及网站运行机制
- 奇异值分解(SVD)应用简介
- QT-进程间通信
- linux编译ffmpeg(一)
- Adopting Modern Objective-C
- 排序算法之选择排序
- c语言响应键盘输入
- 反思,展望,新的一年!