n!末尾有多少個0問題

2021-09-14 03:32:11 字數 465 閱讀 2408

思路:任何數可以分解為幾個質因子相乘,兩個數相乘末尾為零,即質因子為2*5,我們可判斷有多少個2和5,即0的個數為兩者同時出現的個數,計算階乘時顯然2的個數多於5出現的次數(偶數都會出現2),所以我們只須計算所有數質因子5的個數。

以1024!為例:

1024 / 5 =204;//遍歷一遍,每個數出現1個質因子為5的 個數為204

1024 / 25 =40;//遍歷一遍,每個數出現2個質因子為5的 個數為40

1024 /125 =8;//遍歷一遍,每個數出現3個質因子為5的 個數為8

1024 /625 =1 ;//遍歷一遍,每個數出現4個質因子為5的 個數為1

所以質因子5出現的次數為204+40+8+1=253;//

** c++:

int findzerocount(int n)

return res;

}

N 末尾有多少個0

問題分析 對於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...

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 的個數。例 ...