close
題目
Given an integer n, return the number of trailing zeroes in n!.
想法
要求出尾端有幾個 0,不用把階層求出來,只要算當中有幾個 5,5x2 即會產生 0,但要注意 25 有兩個 5,以此類推 125...。
階層 2 是不缺少的,因此在意 5 就好,舉例,25!,除以 5 表示有 5 個 5,但其實,25 有 6 個 5,必須將 25/5 = 5 後再檢查一次。
code
int trailingZeroes(int n) {
int res = 0;
while (n>=5) {
res += n/5;
n/=5;
}
return res;
}
全站熱搜