计算组合数
Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^
题目描述
计算组合数。C(n,m),表示从n个数中选择m个的组合数。
计算公式如下:
C(n,m) = C(n-1,m-1) + C(n-1,m).
输入
第一行是正整数N,表示有N组要求的组合数。接下来N行,每行两个整数n,m (0 <= m <= n <= 20)。
输出
输出N行。每行输出一个整数表示C(n,m)。
示例输入
32 13 24 0
示例输出
231
提示
来源
2011软件1-5班《程序设计基础》机试 tongjiantao
直接用杨辉三角打表输出。。。。。
#include <stdio.h>
#include <string.h>
int main()
{
int f[25][25];
memset(f,0,sizeof(f));
f[0][0] = 1;
for(int i = 1;i <= 24;i++)
{
for(int j = 1;j <= i + 1;j++)
{
f[i][j] = f[i - 1][j - 1] + f[i - 1][j];
//printf("f[%d][%d] = %d\n",i ,j,f[i][j]);
}
}
int a,b,c;
while(~scanf("%d",&c))
{
while(c--)
{
scanf("%d%d",&a,&b);
printf("%d\n",f[a + 1][b + 1]);
}
}
return 0;
}