計算n 末尾所包含0的個數

2021-09-01 02:06:47 字數 718 閱讀 1381

**:

例如,5!=120,其末尾所含有的「0」的個數為1;10!= 3628800,其末尾所含有的「0」的個數為2;20!= 2432902008176640000,其末尾所含有的「0」的個數為4。

這裡先給出其計算公式,後面給出推導過程。令f(x)表示正整數x末尾所含有的「0」的個數,則有: 

當0 < n < 5時,f(n!) = 0; 

當n >= 5時,f(n!) = k + f(k!), 其中 k = n / 5(取整)。

從而可以遞迴求解。

證明:先證明乙個結論。

結論1: 對於n的階乘n!,其因式分解中,如果存在乙個因子「5」,那麼它必然對應著n!末尾的乙個「0」。

證明:首先我們知道在一堆乘法中產生0的途徑只有2*5得到10,所以有幾對2,5就可以得到幾個0.下面我們可以將n!分解,n!= [5k * 5(k-1) * ... * 10 * 5] * a,其中 n = 5k + r (0 <= r <= 4),a是乙個不含因子「5」的整數。對於序列5,10,15,······,5(k-1),5k,中每乙個數都含有因子5,並且在區間(5(k- 1),5k) 內總有乙個2產生乙個0,將上述序列提出乙個5得到n!= 5^k * k! * a,其中k!可以遞迴的得到其滿足結論1.

有了上面的結論,我們知道f(n!) 只與5因子個數有關。f(n!) =  f(5^k * k! * a) = k + f(k!) = k + f(k!),其中k = n / 5(取整)。

計算N 末尾所包含0的個數

問題描述 給定乙個整數n,求出n 末尾有多少個0?計算公式 令f x 表示正整數x末尾所包含0的個數,則有 當0 當n 5時,f n k f k 其中k n 5 取整 公式推導 證明之前先熟悉乙個結論。結論 對於n 其因式分解中,如果存在乙個因子 5 那麼它必然對應n 末尾的乙個 0 下面證明這個結...

n!末尾0的個數

肯定不能直接求出 n 然後在計算後邊有多少個0 因為 1000000 的位數就是 5565709 對於 n!的末尾如果有乙個 0 的話,必然有乙個 5 與其對應著 所以就是找從 1 到 n 這些數的約數 因子 中有多少個 5 它們有幾個 5,n 末尾就有幾個0 令f x 表示正整數x末尾所含有的 0...

N階乘末尾0的個數

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