第五题:
难度:简单
题解来自windiang。
public int trailingZeroes(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
int N = i;
while (N > 0) {
if (N % 5 == 0) {
count++;
N /= 5;
} else {
break;
}
}
}
return count;
}
给思路了,一定要能自己写出来。
第一次写,犯了分母溢出的错误, 注意最后一段,算n/25的时候,先把n更新,n/=5, 然后再计算n/5。
class Solution {
public int trailingZeroes(int n) {
int count = 0;
while (n>0) {
count += n/5;
n /=5;
}
return count;
}
}
使用递归方法:
public class Solution {
public int trailingZeroes(int n) {
return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);
}
}