求C(N, M),即求M个数中选N个数的组合方案数。 AC不了啊
输入第一行一个正整数T (T<=10), 表示有T组测试数据。第二行~第T+1行,每行有2个正整数N,M (1<=N, M<=20)。
输出
对于每组输入N,M,输出一行,该行有一个数,为C(N, M)值。
样例输入2
3 5
1 20
样例输出
10
20
程序代码:#include <stdio.h>
int s[5][5] = {0};
int fun(int a, int b)
{
if (a == b || 0 == b) return s[a][b] = 1;
if (s[a][b]) return s[a][b];
return s[a][b] = fun(a - 1, b - 1) + fun(a - 1, b);
}
int main()
{
int N;
int m, n;
scanf("%d", &N);
while (N--)
{
scanf("%d%d", &m, &n);
if (m > n / 2) m = n - m;
printf("%d\n", fun(n, m));
}
return 0;
}




