求一個數階乘的後面連續0的個數
阿新 • • 發佈:2019-02-03
對於一個數n的階乘 n! ,計算其後面有幾個連續的零。
我們知道,10 = 2 * 5。每一個 2 與一個 5 相乘,結果就增加一個零。所以求 n! 後面的連續零的個數,其實就是求其中相乘的數含有因子每對因子 2 與 5 的個數。又因為從1到某個數,所含 2 的個數比 5 多,所以問題就可以進一步簡化到求含有因子5的個數。 JAVA實現程式碼如下: Code:- staticint zeroCount ( int n) {
- int counter = 0;
- for( int i = 5,m; i <= n; i += 5) {
-
m = i;
- while ( m % 5 == 0) {
- counter++;
- m /= 5;
- }
- }
- return counter;
- }
- staticint zeroCount ( int n) {
- int counter = 0;
- while ( n >= 5) {
- n /= 5;
- counter += n;
- }
-
return counter;
- }