LintCode 2 尾部的零

2022-09-12 06:36:14 字數 748 閱讀 5782

//答案**

//[/** * 描述

* 設計乙個演算法,計算出n階乘中尾部零的個數

* * 您在真實的面試中是否遇到過這個題?

* 樣例

* 11! = 39916800,因此應該返回 2

* * 挑戰

* o(logn)的時間複雜度

* 小結

從最終的**來看,問題是挺簡單的。之所以折騰這麼久都沒有切入要害,直接做到真正的時間複雜度為o(logn)的效果,個人覺得是因為從分析題目的時候就沒有真正理解o(logn)的真正含義。

類似於二叉搜尋樹,從根節點開始比較,比根節點小則與左子樹比較,比根節點大則與右子樹比較,相等或到達葉子節點則退出。如此迴圈迭代。

*/public

class

trailingzeros

}return m;

}//第二種時間複雜度位o(n/5)-=o(n)

public

long

trailingzeros2(long n)

}return m;

}//第三種時間複雜度位o(logn)每次減少1/5

public

long

trailingzeros3(long n)

return m;

}public

static

void

main(string args)

}

LintCode 2 尾部的零

問題描述設計乙個演算法,計算出n階乘中尾部零的個數 樣例 11 39916800,因此應該返回 2 問題分析按正常的思路看,第一步 把 n 求出。第二步 用得到的這個數取餘10的倍數,從10開始,再到100,再到 n 10 餘數為0,計數器加1,直到餘數不為零結束,返回計數器數值。於是有了如下 cl...

LintCode 2 尾部的零

設計乙個演算法,計算出n階乘中尾部零的個數 您在真實的面試中是否遇到過這個題?yes樣例11 39916800 因此應該返回 2 解題思路 要求n的階乘,就是求1到n這n個數相乘。在這1到n個數當中,只有2和5相乘的結果才會出現0,其中10的倍數也可以看做是2和5相乘的結果,所以,可以在1到n之間看...

Lintcode 2 尾部的零

問題描述 設計乙個演算法,計算出n階乘中尾部零的個數 樣例說明 樣例 1 輸入 11 輸出 2 樣例解釋 11 39916800,結尾的0有2個。樣例 2 輸入 5 輸出 1 樣例解釋 5 120,結尾的0有1個。3.思路 根據題目要求,輸入的n是乙個長整型的數。我們想要求階乘尾部零的個數,那麼這時...