和大家一样一开始也是选了最简单但也是最慢的方法,所以必然超时。
看了题解才发现有数学规律的:
通过观察可以发现一个数的阶乘的0 = 5的倍数的个数+25的倍数的个数+.......以此类推(5的倍数)的倍数的个数
class Solution {
/*
* param n: As desciption
* return: An integer, denote the number of trailing zeros in n!
*/
public long trailingZeros(long n) {
long sum = 0;
while (n != 0) {
sum += n / 5;
n /= 5;
}
return sum;
}
};