組合數與二進位制

2021-09-12 19:49:14 字數 634 閱讀 5619

在組合數學中,我們學過排列數。從n個不同元素中取出m(m<=n)個元素的所有排列的個數,叫做從n中取m的排列數,記為p(n, m)。具體計算方法為p(n, m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! (規定0!=1).當n和m不是很小時,這個排列數是比較大的數值,比如  p(10,5)=30240。如果用二進位制表示為p(10,5)=30240=( 111011000100000)b,也就是說,最後面有5個零。我們的問題就是,給定乙個排列數,算出其二進位制表示的後面有多少個連續的零。

輸入包含多組測試資料,每組測試資料一行。

每行兩個整數,n和m,0示例1

複製10 5

6 10 0

複製

5

1

解題思路:1000!的階乘是很大的,所以不能蠻幹。二進位制後面的0的個數是根據數中有幾個能被2整除的因數,例如:7*6*5*4中6=2*3,4=2*2,有三個2,所以最終轉換為二進位制的時候就有3個0

#includeint we(int n)

else

n=n/2;

}return p;

}int main()

printf("%d\n",cnt);

}}

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

JAVA與二進位制

system.out.println 51 7 如上 的結果是 3 答案 00000000 00000000 00000000 00110011 00000000 00000000 00000000 00000111 2進製 計算機內部 只有 2進製資料。任何資訊都必須轉換為2進製,再由計算機處理。...

二進位制與bitset

運算子 與 and 1 1 1 0 1 0 1 0 0 0 0 0 或 or 1 1 1 0 1 1 1 0 1 0 0 0 異或 xor 1 1 0 0 1 1 1 0 1 0 0 0 非 not 1 0 0 1 邏輯移位 邏輯左移 x y 把x的每個二進位制位向左移動y位,移動造成的最右邊空位由...