N 末尾有多少個0

2022-08-31 19:51:24 字數 493 閱讀 7612

問題分析:對於n!,想要知道其末尾有多少個0,則可以分解為問題能被多少個10整除,繼續分解,被10整除,則必能同時被2和5整除。則對n!進行質因數分解,n!=(2^x)*(3^y)*(5^z)*...,可得n!=2^p*5^q+r,1z

一:則m=1+2+...+k,存在乙個k使得5*k<=n!

二:則m=n!/5+n!/5^2+...n!/5^k,存在乙個k,使得n!/5^(k+1)=0,5^k<=n!,5^(k+1)>n!

**如下:

view code

#includeusing

namespace

std;

int num_nfun(int

n)

return

sum;

}int num_nfun1(int

n) }

return

sum;

}int

main()

N 的末尾有多少個0?

n的階乘末尾有多少0呢?首先,得思考一下0到底是由哪些數貢獻的,顯而易見,乙個2和5能貢獻乙個0,然後我們只需要計算2和5的因子的個數即可,最後取最小值就是0的個數!n的階乘是從1到n的乘積,因子2的個數明顯多於5,只需要計算因子5的數量即可。1 n中5的倍數有n 5個,5 的倍數有n 5 個,5 ...

求N!末尾有多少個0

思考 該題實際上是求 2 5 因子對的個數。對於任意乙個階乘,5因子的個數總是小於2因子的個數,僅需考慮n 中5因子的個數 方法 1 將該數用 5 除,得到的商取整數。2 然後再用所得商當被除數除以 5,得到的商取整數。3 持續做到商等於 0 為止。4 過程中的商加總即為階乘的尾數 0 的個數。例 ...

判斷N 末尾有多少個0

問題 n的階乘 n 中的末尾有多少個0?例如 n 5,n 120.末尾有1個0.n 10,n 3628800.末尾有2個0。分析 看到這個問題,有人可能第一反應是先求出n 然後再根據求出的結果,最後得出n 的末尾有多少個0。但是轉念一想,會不會溢位。其實,從 哪些數相乘可以得到10 這個角度,問題就...