程序员面试金典-面试题 16.05. 阶乘尾数
Posted silentteller
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员面试金典-面试题 16.05. 阶乘尾数相关的知识,希望对你有一定的参考价值。
题目:
设计一个算法,算出 n 阶乘有多少个尾随零。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
分析:
计算阶乘后0的个数实际上就是在数5,一个5和一个偶数相乘就会产生一个0,而25会产生两个0,所以对于n大于0时,数它的5有多少个,除以5,如果还大于0就继续除以5,也就是在数25有几个,反复执行下去。
程序:
class Solution { public int trailingZeroes(int n) { int res = 0; while(n > 0){ res += n / 5; n /= 5; } return res; } }
以上是关于程序员面试金典-面试题 16.05. 阶乘尾数的主要内容,如果未能解决你的问题,请参考以下文章