小编fra*_*anx的帖子

C中的二项式系数递归函数带来了错误的结果,为什么?

初学者在这里试图了解bug的来源.

我已经写了这个递归函数来找到两个数字之间的二项式系数,这在概念上显然是正确的.然而,对于这两个数字,n = 4和k = 2,我应该得到6,而我实际得到16.任何想法为什么会发生这种情况?

#include<stdio.h>

int binomial(int n, int k)
{
  if ((k = 0) || (k == n))
    return 1;
  if (k>n)
    return 0;

  return binomial(n - 1, k - 1) + binomial(n - 1, k);
}

int main()    
{
  int a, b, res;
  a = 4;
  b = 2;
  res = binomial(a, b);
  printf("The result is %d", res);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c debugging recursion binomial-coefficients

0
推荐指数
2
解决办法
346
查看次数

标签 统计

binomial-coefficients ×1

c ×1

debugging ×1

recursion ×1