階乘末尾0的個數 2021 1 4

2021-10-13 21:55:34 字數 712 閱讀 1534

本題在去年寒假的競賽培訓中即出現過,不妨分析一下,n的階乘末尾零的個數即從1到n每個數字包含因子5的個數(可以用電腦上的計算器模擬一下,如,10!末尾零的個數即為2,25!即為6)。

現提供一種更好的思路,乙個數除以五,得到的即為它包含乙個因子5的個數。然而,乙個數字中可以包含若干個因子5,因此,再將所得的數字除以5,得到的是包含兩個因子5的個數,以此類推,將不斷除以5的數字做累加直到不可再被5整除。

這裡解決乙個困惑:以1024!為例,將1024地板除以5,得到204 ,為包含乙個因子5的個數,而再地板除以5,即,將1024地板除以25,得到40,為包含兩個因子5的個數,即包乙個因子25的個數,以此類推,做累加即可得到最後的結果為253。

ac**:

#include

using

namespace std;

typedef

long

long ll;

//const ll maxn = 1000000005;

ll cal

(ll num)

while

(num)

;return cnt;

}int

main()

return0;

}

N階乘末尾0的個數

輸入乙個正整數n,求n 即階乘 末尾有多少個0?比如 n 10 n 3628800,所以答案為2 輸入為一行,n 1 n 1000 輸出乙個整數,即題目所求要判斷末尾有幾個0就是判斷可以整除幾次10。10的因子有5和2,而在0 9之間5的倍數只有乙個,2的倍數相對較多,所以本題也就轉換成了求n階乘中...

ACM 大數階乘末尾0的個數

階乘末尾0的個數 有乙個題目說的是求 100 的階乘末尾有多少個 0.題解中給出的講解提到,乙個數 n 的階乘末尾有多少個 0 思路 乙個數 n 的階乘末尾有多少個 0 取決於從 1 到 n 的各個數的因子中 2 和 5 的個數,而 2 的個數是遠遠多餘 5 的個數的,因此求出 5 的個數即可.題解...

n的階乘問題 階乘位數 階乘末尾0的個數

初來乍到,望高手指教!原有解決n的階乘的方式 迭代,如果是大資料的話,迭代會吃掉大量記憶體,導致記憶體溢位 用平時的迭代解決n的階乘問題 在計算21的階乘時,結果已然為負數,超出整型資料表示範圍。計算34的階乘是,結果已然為0 此段 將n的階乘問題解決,實現無限大數的階乘!無限 兩字有點牽強,數字太...