/* 異なるn個の整数からr個の整数を取り出す組み合わせの数nCrを求める関数 int combination(int n, int r) {} を作成せよ。なおnCrは以下のように定義される。 nCr = n-1Cr-1 + n-1Cr(ただし、nC0 = nCn = 1、nC1 = n) */ #include int combination(int n, int r) { if(n == r || r == 0) return 1; if(r == 1) return n; return combination(n -1, r - 1) + combination(n - 1, r); } int combi(int a, int b) { return (a > b) ? combination(a, b) : combination(b, a); } int main(void) { int dn, dr; puts("二つの整数を入力してください"); printf("整数1:"); scanf("%d", &dn); printf("整数2:"); scanf("%d", &dr); printf("組み合わせの数は%d個です\n", combi(dn, dr)); return 0; }