阶乘后的零
问题描述:
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
题目分析:
从根源上找到尾数中零出现的原因,有 一个 5 就会有一个0,25 相当于 两个 5.
代码展示(已验证):
class Solution {
public int trailingZeroes(int n) {
// 根据0 产生的原因 5,25
int num=0;
while(n>4)
{
num+= n/5;
n /=5; //一个25 等同于两个5
}
return num;
}
}
泡泡:
嗯,这个博客写着简单,哈哈。