コード:
#include<stdio.h>
int binomialCoeff(int n, int k)
{
// Base Cases
if (k==0 || k==n)
return 1;
else
return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}
int main()
{
int n = 5, k = 2;
printf("Value of C(%d, %d) is %d ", n, k, binomialCoeff(n, k));
return 0;
}
基本的なケースは理解できると思います。n に 0 を使用し、k=n の場合、結果は 0!/0! になります。これは = 1 です。したがって、1 を返します。
しかし、私はコードのこの部分を理解できません:
return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
n の値が 5 で k の値が 2 の場合、結果は 10 になります (数式で置換する場合)。式 しかし、なぜ足し算を使うのでしょうか?
後もう一つ。キーボードから「n」と「k」を設定すると、プログラムが動作しないのはなぜですか? このような:
int main()
{
int n,k;
cin>>n;
cin>>k;
printf("Value of C(%d, %d) is %d ", n, k, binomialCoeff(n, k));
return 0;
}