1021 組合數末尾的零

2022-08-18 18:21:14 字數 934 閱讀 4748

題目:

description

從m個不同元素中取出n (n ≤ m)個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。組合數的計算公式如下:

c(m, n) = m!/((m - n)!n!) 

現在請問,如果將組合數c(m, n)寫成二進位制數,請問轉這個二進位制數末尾有多少個零。

input

第一行是測試樣例的個數t,接下來是t個測試樣例,每個測試樣例佔一行,有兩個數,依次是m和n,其中n

≤ m≤ 1000。output

分別輸出每乙個組合數轉換成二進位制數後末尾零的數量。

sample input

2 4 2

1000 500 

sample output

1

6

思路:乙個十進位制數如果是2的多少次方,它的二進位制數末尾就有多少個零。

<1> 分別找出組合數分子,分母中含有2的個數count1,count2;

<2> 所求的末尾0的個數count=count1-count2;

注:如果求出組合數後再去求末尾有幾個零會超記憶體;因為題目所要求的範圍。

1 #include2

using

namespace

std;

3int

main()421

}22for(i=m-n;i>=1;i--)

2330

}31 count=count1-count2;

32 cout34return0;

35 }

1021 組合數末尾的零

題目 從m個不同元素中取出n n m 個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。組合數的計算公式如下 c m,n m m n n 問 如果將組合數 c m,n 寫成二進位制數,這個二進位制數末尾有多少個零?其中n m 1000 案例 sample input 2 4 2100...

CSU 1021 組合數末尾的零

time limit 1 sec memory limit 128 mb從m個不同元素中取出n n m 個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。組合數的計算公式如下 c m,n m m n n 現在請問,如果將組合數c m,n 寫成二進位制數,請問轉這個二進位制數末尾有多少...

組合數末尾的零

c m,n m m n n 將組合數c m,n 寫成二進位制數,這個二進位制數末尾有多少個零?自然數可以進行質因數分解,質因子2的指數即相應二進位制末尾零的個數 將各個數二進位制末尾0的個數累加,得到階乘數末尾0的個數。優化 include int f int main printf d n ans...