Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
C++ 如何将求组合的几个循环代码转换为递归方法?_C++_Combinations_Backtracking - Fatal编程技术网

C++ 如何将求组合的几个循环代码转换为递归方法?

C++ 如何将求组合的几个循环代码转换为递归方法?,c++,combinations,backtracking,C++,Combinations,Backtracking,我正在尝试将此代码转换为递归方法 for(int i=0;i<25;++i) for(int j=i+1;j<25;++j) for(int k=j+1;k<25;++k) for(int l=k+1;l<25;++l) for(int m=l+1;m<25;++m) {//} for(int i=0;ivoid backtrack(int start,int depth){ 如果(深度

我正在尝试将此代码转换为递归方法

for(int i=0;i<25;++i)
  for(int j=i+1;j<25;++j)
    for(int k=j+1;k<25;++k)
      for(int l=k+1;l<25;++l)
        for(int m=l+1;m<25;++m)
       {//}
for(int i=0;i
void backtrack(int start,int depth){
如果(深度<5){
对于(int i=开始;i<25;++i){
回溯(i+1,深度+1);
}
}
}

看起来它和你的嵌套循环一样。

我认为,当我们比较性能时,嵌套循环比递归方式更好。在递归方式中,必须调用方法,这需要一些时间。

请为你正在使用的C/C++/其他语言添加标记。你能正确转换为三个嵌套循环吗,如果是,那么fo你的嵌套循环?
int soln[5];
void backtrack(int c)
{
if(c<5)
{
    for(int i=c;i<25;++i)
    {
        soln[c] = i;
        backtrack(c+1);

    }
}
else
{ // }
void backtrack(int start, int depth) {
  if (depth < 5) {
    for (int i = start; i < 25; ++i) {
      backtrack(i + 1, depth + 1);
    }
  }
}