问题
给定一个整数 n,返回 n! 结果尾数中零的数量。
例子
思路
-
十进制
末尾有多少个 0 ,只需要给当前数乘以一个 10 就可以加一个 0
10是由2和5产生的,由于5更少,所以只需考虑5的个数即可
设n=100,先看n中有多少个5的倍数,n/5,再看有多少25的倍数 n/25 【每隔25出现了2个5,所以每隔25还要多算一个】 -
八进制
把10换成8,把25->24
代码
//十进制
class Solution {
public int trailingZeroes(int n) {
int res=0;
while(n>0) {
res+=n/5;
n/=5;
}
return res;
}
}
//8进制
int res=0;
while(n>0) {
res+=n/4;
n/=4;
}
return res;