2011-03-22 43 views
0

是否有任何有效的方法來計算n的末尾零的數量!沒有明確需要計算n !?在n中找到最後的零個數!

+1

這已在math.stackexchange中進行了討論:http://math.stackexchange.com/questions/17916/number-of-zeros-at-the-end-of-a-factorial – codaddict 2011-03-22 12:34:37

+1

通過表查找:'unsigned nzeros [] = {0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4 ,4,4,6};/* ... * /' – pmg 2011-03-22 12:36:11

+0

@pmg:hmm,讓你想知道爲什麼編程語言甚至會支持算術。我們可以將所有東西都看完; -p – 2011-03-22 14:01:48

回答

3

N末尾的零數!通過

Σ地板(N/5 ),其中i = 1,2,3 ....

Simple代碼用C

給出
i = 1, sum = 0; 
    while(pow(5,i)<= n) 
    { 
     sum += n/(pow(5,i)); 
     i++; 
    } 
5

是有。主要思想:(1)它與5的最高次冪n相同! (2)這是5至n的倍數,再加上25至n的倍數,再加上125倍至n的倍數等。

但是,這不屬於堆棧溢出。

2

n的十進制表示中的零的數量!是十次出現的次數是這個大數字的一個因素。因此,2x5出現的次數。因此,因爲會出現更多的2作爲因子而不是5(爲什麼?),所以5是因子n的次數。

所以,面試的問題是:有多少擊掌顯示爲表達

1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x ... x (n-1) x n 

項目的因素是什麼?