統計乙個數的階乘後面0的個數

2021-06-29 07:38:31 字數 422 閱讀 9586

given an integer n, return the number of trailing zeroes in n!.

note: your solution should be in logarithmic time complexity.

要求對數時間。

首先分析,只有2*5=10才會產生乙個0,n!中2的數量永遠大於5的數量,所以該題的目標簡化為求n!中5的個數。

第一種方法是求1~n中每個數中含有5的個數,加起來便是結尾0的個數,但時間複雜度非log級;

第二種,尋求一種思路,n!中5的個數=[n/5]+[n/25]+[n/125]+...,下面是**,感受一下

int trailingzeroes(int n) 

return count;

}

乙個數的階乘後面有多少個0

分析 看這個題目好像一點思路都沒有,畢竟0的演算法是不行的了,仔細分析一下出現0的話最簡單的情況就是2 5 10這種情況了,那麼我們可以想到將1 2 3 4 5 6 7.這樣的階乘序列進行素數分解得到的情況乙個數由2的x次方3的y次方5的z次方這樣下去的乙個素數乘法,上面的就可以這樣寫1 2 3 2...

求乙個數的階乘中0的個數

連續幾天產出為負,再不寫點東西沒法交代了。public class the number of 0 in factorialn 階乘中有多少0,如果n k 10 m k是乙個不能被10整除的數,那麼m有多少個就有多少個0 n!進行質因數分解n!2 x 3 y 5 z 由於只有2 5 10,所以可以看...

N階乘尾部的0個數

描述 設計乙個演算法,計算出n階乘中尾部零的個數 思路 1 1 2 3 n 1 2 3 2 2 5 2 3 7 2 2 2 3 3 2 5 化成質數相乘,只有2 5才可能得到結果有尾數中有0 2 因為2的個數是比5多的,求0的個數問題就轉化成了求5的個數的問題 3 5 5 5 5 5 5有n個5 得...