将嵌套循环转换为递归

时间:2013-11-15 20:51:32

标签: c loops recursion tree

我想创建一个9深度的minimax树。我使用了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);         
              }
            }
          }
        }
      }
    }
  }
}         

1 个答案:

答案 0 :(得分: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);
    }
}