代码:
#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;
}