組合せの総数(二項係数)nCr は次の関係式で定義できる.
nC0 = 1 (n >= 0)
nCn = 1 (n >= 1)
nCr = 0 (r > n)
nCr = n-1Cr + n-1Cr-1 (n > r > 0)
この式に従って再帰関数 unsigned int reccomb(int m, int n) を定義し,動作テストせよ.
ただし,関数 reccomb() には関数を呼び出した回数を数える機能を追加しておき,何回 reccomb() を呼び出したかも表示せよ.
なのですが、現在、下記の状況で行き詰まっています。
どのように再帰関数を使えばいいのか分からないのと、関数を呼び出した回数を数える方法が分かりません。
#include <stdio.h> int count = 0; int recfact(int n) { return (n <= 1 ? 1 : n * recfact(n - 1)); } unsigned int reccomb(int m, int n) { count++; if (m >= 0 && n == 0) { return (1); } else if (m >= 1 && m == n) { return (1); } else if (m < n) { return (0); } else { } } int main(void) { int n, r; printf("n C r の n と r を入力せよ.\n"); printf("n = "); scanf("%d", &n); printf("r = "); scanf("%d", &r); printf(" reccomb() の呼び出し回数:%d\n", count); printf(" n C r = %d\n", reccomb(n, r)); return (0); }助言だけでもいいですので、よろしくお願いしますm(_ _)m