给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
做这道题之前,我们要先想一下,什么情况下会产生零。是不是有2 还有5 的情况下,比如:6的阶乘,前面有一个2 一个5,所以结果有一个零。所以我们需要找出2的个数或者 5的个数。 在仔细想想,在6之前,虽然有一个2 可是4 等于 2*2 。所以我们不能用2,而是应该找5出现的次数。因为5出现的次数比2少。所以有几个5,就有几个零。
public class test0316 {
public static void main(String[] args) {
Solution S = new Solution();
int n = 53;
int a = S.trailingZeroes(n);
System.out.println(a);
}
}
class Solution {
public int trailingZeroes(int n) {
int count = 0;
while(n != 0){
count += n/5;
n /= 5;
}
return count;
}
}
本文介绍了一种计算任意整数阶乘结果尾数中零的数量的方法。通过分析发现,阶乘尾数中零的数量由5的倍数决定,而非2的倍数,这是因为5的倍数相较于2的倍数更稀少。文章提供了一个简洁的算法,通过不断除以5并累加商的值,即可得到阶乘尾数中零的数量。
411

被折叠的 条评论
为什么被折叠?



