计算组合数
Time Limit: 1000MS Memory Limit: 32768KB
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)。
Example Input
32 13 24 0
Example Output
231
Hint
Author
#include<stdio.h>
02 | int c( int n, int m) |
03 | { |
04 | int y; |
05 | if (m == 0) |
06 | { |
07 | y = 1; |
08 | } |
09 | else if (n == 1) |
10 | { |
11 | y = 1; |
12 | } |
13 | else if (m == n) |
14 | { |
15 | y = 1; |
16 | } |
17 | else |
18 | { |
19 | y = c(n - 1, m - 1) + c(n - 1, m); |
20 | } |
21 | return y; |
22 | } |
23 | int main() |
24 | { |
25 | int n, m, y, t; |
26 | scanf ( "%d" , &t); |
27 | while (t--) |
28 | { |
29 | scanf ( "%d%d" , &n, &m); |
30 | y = c(n, m); |
31 | printf ( "%d\n" , y); |
32 | } |
33 | return 0; |
34 | } |
35 |
36 |