计算组合数

xiaoxiao2022-06-11  93

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 3 2 1 3 2 4 0 Sample Output 2 3 1

代码:

#include <stdio.h> #include <stdlib.h> int f(int n,int m) { if(m==0) return 1; else if(n==1) return 1; else if(m==n) return 1; else return f(n-1,m-1)+f(n-1,m); } int main() { int t,i,n,m; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d%d",&n,&m); printf("%d\n",f(n,m)); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-4932128.html

最新回复(0)