CSU 1021 組合數末尾的零

2021-08-21 08:21:06 字數 748 閱讀 3576

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

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

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

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

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

2 4 2

1000 5001 6

中南大學第四屆大學生程式設計競賽

題解:由題目的描述可知組合數的定義。求乙個數的二進位制末尾0的個數實際上是求這個數可以被2整除多少次,也就是有多少個2的因子。依題目意思,ans=m!因子2的個數-(m-n)!因子2的個數-n!因子2的個數。

ac**:

#include

using

namespace

std;

int fun(int m)

num++;

tmp>>=1;

}m--;

}return num;

}int main()

else

}return

0;}

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...

1021 組合數末尾的零

題目 description 從m個不同元素中取出n n m 個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。組合數的計算公式如下 c m,n m m n n 現在請問,如果將組合數c m,n 寫成二進位制數,請問轉這個二進位制數末尾有多少個零。input 第一行是測試樣例的個數t...

組合數末尾的零(CSU)

從m個不同元素中取出n n m 個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。組合數的計算公式如下 c m,n m m n n 現在請問,如果將組合數c m,n 寫成二進位制數,請問轉這個二進位制數末尾有多少個零。第一行是測試樣例的個數t,接下來是t個測試樣例,每個測試樣例佔一行...