如何将嵌套for循环转换为递归函数?

时间:2013-01-21 15:34:45

标签: c recursion for-loop

for(a[9]=0;a[9]<16;a[9]++)

for(a[8]=0;a[8]<16;a[8]++)

for(a[7]=0;a[7]<16;a[7]++)

for(a[6]=0;a[6]<16;a[6]++)

for(a[5]=0;a[5]<16;a[5]++)

for(a[4]=0;a[4]<16;a[4]++)

for(a[3]=0;a[3]<16;a[3]++)

for(a[2]=0;a[2]<16;a[2]++)

for(a[1]=0;a[1]<16;a[1]++)

for(a[0]=0;a[0]<16;a[0]++)

i++;

1 个答案:

答案 0 :(得分:2)

下面的逻辑将帮助您将嵌套的for循环转换为递归函数。但是不要在代码中不必要地添加如此多的嵌套for循环。即使在编写小程序时也需要考虑性能。

int i = 0; //make it as global variable
...
void func(int a[], int index)
{
   for (a[index] = 0; a[index] < 16; a[index]++)
   {
       if (index != 0)
       {
           func(a, (index - 1));
       }
       else
       {
           i++;
       }
   }
}