根据递推式子C(m,n)=C(m-1,n)+C(m-1,n-1),求组合数C(m,n)。注意递推的终止条件是C(m,1)=m;以及一些m和n取值的一些特殊情况,如m < 0或n < 0或m < n时,C(m,n)值为0,m和n相等时,C(m,n)=1等。 输入格式: 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数m和一个正整数n。 输出格式: 输出组合数C(m,n)。
时间: 2024-03-10 19:46:54 浏览: 98
c语言程序————递推求n!
好的,根据您的要求,我会为您解答这个问题。根据递推式C(m,n)=C(m-1,n)+C(m-1,n-1),我们可以使用递归的方式来求解组合数C(m,n)。具体实现如下(使用Python语言):
```python
def C(m, n):
if m < 0 or n < 0 or m < n:
return 0
elif n == 1:
return m
elif m == n:
return 1
else:
return C(m-1, n) + C(m-1, n-1)
```
在上述代码中,我们使用了递归的方式来实现组合数的计算。首先,我们判断了一些特殊情况,如m < 0或n < 0或m < n时,C(m,n)值为0,m和n相等时,C(m,n)=1等。然后,我们根据递推式C(m,n)=C(m-1,n)+C(m-1,n-1)来递归地计算组合数。当n等于1时,C(m,n)的值为m,这是递归的终止条件。
接下来,我们可以读入测试数据,调用上述函数来求解组合数,并将结果输出。具体实现如下(同样使用Python语言):
```python
n = int(input())
for i in range(n):
m, n = map(int, input().split())
print(C(m, n))
```
在上述代码中,我们首先读入测试数据的组数n,然后使用一个循环来逐个处理每组测试数据。对于每组测试数据,我们使用map函数来读入m和n,然后调用上述函数来求解组合数,并将结果输出。
希望我的回答能够帮助到您!
阅读全文