将嵌套循环转换为递归

标签 c loops recursion tree

我想创建一棵深度为 9 的极小极大树。我使用了 9 个嵌套循环和太多变量。现在我想将这个循环转换为递归。谢谢你的回答。这是我的代码。

int a,b,c,d,e,f,g,h;
for(a=0;a<9;a++) 
{
  y=y->branch[a];
  yap(y,8);           
  for(b=0;b<8;b++) 
  {
    y=y->branch[b];
    yap(y,7);                            
    for(c=0;c<7;c++) 
    {         
      y=y->branch[c];
      yap(y,6);                 
      for(d=0;d<6;d++) 
      {
        y=y->branch[d];
        yap(y,5);                        
        for(e=0;e<5;e++) 
        {                 
          y=y->branch[e];
          yap(y,4);                 
          for(f=0;f<4;f++) 
          {
            y=y->branch[f];
            yap(y,3);
            for(g=0;g<3;g++) 
            {
              y=y->branch[g];
              yap(y,2);
              for(h=0;h<2;h++) 
              {
                y=y->brancg[h];
                yap(y,1);         
              }
            }
          }
        }
      }
    }
  }
}         

最佳答案

void recursive(int max)
{
    int a;
    for(a=0;a<max;a++) 
    {
        y=y->branch[a];
        yap(y,max - 1);
        if (max > 2) 
            recursive(max - 1);
    }
}  

关于将嵌套循环转换为递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20010369/

相关文章:

c++ - 如何在 C++ 中找到递归函数的深度

C - 接受指针作为参数的递归函数问题

c - 在 C 中使用 getopt_long 将参数传递给函数

R 如何循环配对列以创建新列

java - android studio中的顺序动画,循环

java - Java 代码中的循环问题

c - 使用 avcodec_decode_audio4() 解码 AAC 时出错

Java 和 C : How can I compile this C source file into a DLL for use with Java?

c - procfs 如何输出/proc/iomem?

java - 二叉树和 NullPointerException