题目描述:
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes
解法:`
class Solution {
public int trailingZeroes(int n) {
int b = 0;
while (n >= 5) {
b += n / 5;
n /= 5;
}
return b;
}
}
本题思路概述:
阶乘尾数为0,要得到0的尾数,就需要偶数与5相乘,由于偶数个数远远多于5的个数,所以有几个5,尾数就有几个0,同时,10可以看做25(一个5),25看做55(两个5)。
while循环写法的思路:
用整数b来记录0的个数,当n大于5的的时候,我们先计算有几个数字包含一个5,所以让n除以5,得到包含一个5的数字的个数,并赋值给b。之后再除以5,得到有两个5的数字的个数…一直循环到n<5,不再有数字包含5。