计算组合数
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
3 2 1 3 2 4 0Example Output
2 3 1 #include <stdio.h> #include <stdlib.h> int c(int n,int m) {if(m==0)return 1;else if(n==1)return 1;else if(m==n)return 1;elsereturn c(n-1,m-1)+c(n-1,m); } int main() {int t,i,m,n;scanf("%d",&t);for(i=1;i<=t;i++){scanf("%d%d",&n,&m);printf("%d\n",c(n,m));}return 0; }總結
- 上一篇: 多行书写的字符串字面值
- 下一篇: MyBatis之使用resultMap实