求乙個階乘尾數0的個數(C語言實現)

2021-06-13 08:46:53 字數 545 閱讀 3898

解題思路:直接求出這個數然後求其末尾0的個數肯定是不可取的,即使是long型別,也很快會有溢位              現象。可以利用2*5=10,對任意數的階乘,5的因子個數肯定比2的因子個數要少,所以,可以認為,n的階乘尾數中有多少個0,取決於1-n這些數中5的因子有多少個。

以下是c語言的實現源**:

#include

int getdivisorcount(int dividend,int divisor); 

void main(void)

printf("100!zero=%d",sum);

system("pause");}/*

*dividend:被除數,divisor除數,有上述原理分析這裡divisor的值為5 

*這個方法求出1-n中每個數的5的因子個數 

*/ int getdivisorcount(int dividend,int divisor)

int count = 0;

if(dividend%divisor == 0)

return count;}

求乙個數的階乘中0的個數

連續幾天產出為負,再不寫點東西沒法交代了。public class the number of 0 in factorialn 階乘中有多少0,如果n k 10 m k是乙個不能被10整除的數,那麼m有多少個就有多少個0 n!進行質因數分解n!2 x 3 y 5 z 由於只有2 5 10,所以可以看...

C 利用遞迴求乙個數的階乘 遞迴 階乘

當然也可以用迭代 就是迴圈 來求階乘,遞迴適用於選擇結構,迭代適用於迴圈結構。能用遞迴解決的問題,一定能用迭代來解決。c 利用遞迴求乙個數的階乘 遞迴 即自己呼叫自己 分類 分為直接呼叫和間接呼叫 直接呼叫 不通過其他函式直接在本函式內,呼叫自己。間接呼叫 通過多步操作,在其他函式內呼叫本身。inc...

統計乙個數的階乘後面0的個數

given an integer n,return the number of trailing zeroes in n note your solution should be in logarithmic time complexity.要求對數時間。首先分析,只有2 5 10才會產生乙個0,n...