面试刷题第四天
LeetCode刷题——172. 阶乘后的零
1、题目描述
给定一个整数 n ,返回 n! 结果中尾随零的数量。
(提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1)
2、解题思路
(1)10以内相乘的结果中,尾部是0的只有2*5,在运算中,将每个数进行拆分,可见,2的数量是大于5的数量,所以,该题目最终可转换为求5的数量。
(2)在0到25中,每5个数有一个5,25中有两个5,50中有3个5,125中有3个5。
所以最终转换为,求n/5+n/25+n/125+…+0。
Java代码如下:
class Solution {
public int trailingZeroes(int n) {
int ans = 0;
while(n != 0){
n /= 5;
ans += n;
}
return ans;
}
}