哈理工OJ 1037 組合數末尾的零

2021-08-19 23:14:32 字數 648 閱讀 8050

這題我開始想暴算。。然後發現。。

1000!太大連double都會爆。。

//暴力片段
long long int jiecheng(int a)

}int zuheshu(int m,int n)

然後我想試試優化下演算法,把遞推算階乘和組合數放到一起算,然並卵,c100 50就是10的299次方了。。。下面是當時的優化片段

double zuheshu(int m,int n)

然後我實在沒辦法了。。就試了試找規律,然後發現。。臥槽水題

末尾的零每多乙個,就說明它乘了2,也就是說要想知道組合數的末尾有幾個零,就是等於求這個組合數能有多少個是2的因子,然後弄個函式算因子就行了,就是我下面寫的totwo函式。

#include#include#include#includeusing namespace std;

totwo(int a)

sum+=num;

} //cout<>t;

while(t--)

{ int m,n;

cin>>m>>n;

cout《總結:

多做題,多寫解題報告。

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 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 寫成二進位制數,請問轉這個二進位制數末尾有多少...