Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EditReturn我不能完全理解这里所问的递归函数(c++) 我现在正在C++中做一些练习,但是我不知怎么地不能回答这个问题:_C++_Algorithm_Function_Recursion - Fatal编程技术网

EditReturn我不能完全理解这里所问的递归函数(c++) 我现在正在C++中做一些练习,但是我不知怎么地不能回答这个问题:

EditReturn我不能完全理解这里所问的递归函数(c++) 我现在正在C++中做一些练习,但是我不知怎么地不能回答这个问题:,c++,algorithm,function,recursion,C++,Algorithm,Function,Recursion,创建一个名为bin的函数,该函数接受两个整数参数:n 和k,并返回一个整数。如果k等于0或n小于 k、 此函数必须返回1。在任何其他情况下,此函数 应返回binn-1,k-1和binn-1,k之和 一个函数,在int bin int x,int y中,如果n==0 n我认为这只是把英语翻译成C++的问题,不是吗? // Create a function named bin that, that takes two integer arguments: n and k, //and retur

创建一个名为bin的函数,该函数接受两个整数参数:n 和k,并返回一个整数。如果k等于0或n小于 k、 此函数必须返回1。在任何其他情况下,此函数 应返回binn-1,k-1和binn-1,k之和


一个函数,在int bin int x,int y中,如果n==0 n我认为这只是把英语翻译成C++的问题,不是吗?

// Create a function named bin that, that takes two integer arguments: n and k, 
//and returns an integer. 
int bin(int n, int k)
{
  // If k is equal to 0 or n is smaller than k, this function has to return 1. 
  if ((k == 0) || n < k)
    return 1;

  //In any other case, this function should return the sum of 
  // bin(n-1, k-1) and bin(n-1, k).
  return bin(n-1, k-1) + bin(n-1, k);
}

我认为这只是把英语翻译成C++的问题,不是吗?
// Create a function named bin that, that takes two integer arguments: n and k, 
//and returns an integer. 
int bin(int n, int k)
{
  // If k is equal to 0 or n is smaller than k, this function has to return 1. 
  if ((k == 0) || n < k)
    return 1;

  //In any other case, this function should return the sum of 
  // bin(n-1, k-1) and bin(n-1, k).
  return bin(n-1, k-1) + bin(n-1, k);
}

通过逐字阅读文本,解决方案非常简单:

int bin(int n, int k) {
  if (k == 0 || n < k)
    return 1;

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

为了完整起见,请注意还有其他更快的方法,例如,通过逐字阅读文本,在ONK中计算它,解决方案非常简单:

int bin(int n, int k) {
  if (k == 0 || n < k)
    return 1;

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

为了完整起见,请注意还有其他更快的方法,例如在ONK中计算它的方法

如果您可以发布代码,那就太好了:请张贴你真正的功能,而不是一个长句子的代码片段。你的问题是什么?这样做的目的是什么?或者我该如何编写这样的函数呢?好的,请稍候。到目前为止,您的代码忘记了返回值。我刚刚设法正确使用了编辑器。谢谢您的时间和回复。如果您能发布您的代码,那就太好了请张贴你真正的功能,而不是一个长句子的代码片段。你的问题是什么?这样做的目的是什么?或者我该如何编写这样的函数呢?好的,请稍候。到目前为止,您的代码忘记了返回值。我刚刚设法正确使用了编辑器。感谢您的时间和回答。signed将比int更好。如前所述,bin-1,-2将递归直到整数溢出。请注意,无论如何,整个过程都可能导致堆栈溢出。非常感谢您,我仍然很难在编辑器中实现我的代码,我已经得到了答案。@MartinBonner unsigned long long可能更好。。。这个兔子洞可能会持续很久,无符号的会比int好。如前所述,bin-1,-2将递归直到整数溢出。请注意,无论如何,整个过程都可能导致堆栈溢出。非常感谢您,我仍然很难在编辑器中实现我的代码,我已经得到了答案。@MartinBonner unsigned long long可能更好。。。这个兔子洞可能会持续很久谢谢你。。你的话也使我明白了这件事。。你的话为我解释了这件事