寫在前面
- 數學題
n的階乘的尾部爲0的個數主要取決於其中5的個數。
階乘尾數爲0,要得到0的尾數,就需要偶數與5相乘,由於偶數個數遠遠多於5的個數,所以有幾個5,尾數就有幾個0
同時,10可以看做2*5(1個5),25看做5*5(2個5)
題目詳情
階乘後的零
給定一個整數 n,返回 n! 結果尾數中零的數量。
示例 1:
輸入: 3
輸出: 0
解釋: 3! = 6, 尾數中沒有零。
示例 2:
輸入: 5
輸出: 1
解釋: 5! = 120, 尾數中有 1 個零.
說明: 你算法的時間複雜度應爲 O(log n) 。
ac題目
class Solution {
public:
int trailingZeroes(int n) {
int sum = 0;
while(n) {
sum += n/5;
n /= 5;
}
return sum;
}
};