計算組合數

2021-08-18 18:43:25 字數 663 閱讀 3695

time limit: 1000 ms memory limit: 32768 kib

problem description

計算組合數。c(n,m),表示從n個數中選擇m個的組合數。

計算公式如下:

若:m=0,c(n,m)=1

否則, 若 n=1,c(n,m)=1

否則,若m=n,c(n,m)=1

否則 c(n,m) = c(n-1,m-1) + c(n-1,m).

input

第一行是正整數n,表示有n組要求的組合數。接下來n行,每行兩個整數n,m (0 <= m <= n <= 20)。

output

輸出n行。每行輸出乙個整數表示c(n,m)。

sample input

32 13 24 0

sample output

231
#includeint c(int n, int m)

else if(n == 1)

else if(m == n)

else if(m > 0 && n >= m && n <= 20)

return y;

}int main(void)

return 0;

}

計算組合數

1.防溢位 如果直接用c n,m n!n m m 來程式設計很可能會在算n!時就爆了long long,所以每一步最好把除分母也算上。所以對於c n,m 來說取m min m,n m 來算c n,m n n 1 n 2 n m 1 m m 1 m 2 1 顯然分子分母都是m項相乘,從後往前去算 先算...

計算組合數

計算組合數 time limit 1000ms memory limit 32768kb submit statistic problem description 計算組合數。c n,m 表示從n個數中選擇m個的組合數。計算公式如下 若 m 0,c n,m 1 否則,若 n 1,c n,m 1 否則...

計算組合數

編寫函式,引數是兩個非負整數n和m,返回組合數cnm n m n m 其中m n 25,例如,n 25,m 12時答案為5200300。很多人一看到這個題目,第一做法是編寫乙個計算階乘的函式,然後返回值。其做法如下 include long long factorial int n long lon...