版權聲明:轉載請聯系本人,感謝配合!本站位址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50568854
翻譯
給定一個整型n,傳回n!後面的零的個數。
注意:你的解決方案應該在log時間複雜度内。
原文
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
分析
起初我看題目的時候沒太注意,還以為就是求n這個數後面的零而已,雖然心想不會這麼簡單吧……就寫了一份代碼送出了,結果WA提示我5的話應該傳回1,這我就納悶了,5後面毛的0呐……趕緊看題目……哦原來是階乘,那這個題我遇到過的。
要想最後有零,階乘的過程中就必須有5,如果是10的話就有兩個可以被5整除的數了,10和5,以此類推……
剛才特意去找了一下之前寫的那篇部落格,大家可以去看看,蠻有意思的,用函數式語言LISP可以求出20000的階乘喔,^_^
100的階層真的算不出來嗎?代碼
class Solution {
public:
int trailingZeroes(int n) {
int count = 0;
while (n > 1)
count += (n /= 5);
return count;
}
};