如何转换为嵌套循环到一个递归函数? [英] How to convert nested for loops into a recursive function?
本文介绍了如何转换为嵌套循环到一个递归函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
用于:(a [9] = 0;一个[9]&下; 16;一个[9] ++)用于:(a [8] = 0;一个[8]下; 16;一个[8] +)用于:(a [7] = 0;一个[7]所述; 16;一个[7] +)用于:(a [6] = 0;一个[6]所述; 16;一个[6] +)用于:(a [5] = 0;一个[5]&下; 16;一个[5] ++)用于:(a [4] = 0;一个[4]&下; 16;一个[4] +)用于:(a [3] = 0;一个[3]所述; 16;一个[3] +)用于:(a [2] = 0;一个[2]所述; 16;一个[2] ++)用于:(a [1] = 0;一[1]; 16;一个[1] ++)用于:(a [0] = 0;一个[0]&下; 16;一个[0] ++)我++;
解决方案
以下逻辑将帮助你转换一个嵌套循环递归函数。但不要加那么多嵌套在$ C $ 为
循环Ç不必要的。性能需求,甚至在写小程序,可以考虑一下。
INT I = 0; //使其作为全局变量
...
无效FUNC(int类型的[],INT指数)
{
用于:(a [索引] = 0;一个[索引]< 16; [指数] ++)
{
如果(索引!= 0)
{
FUNC(一,(指数 - 1));
}
其他
{
我++;
}
}
}
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++;
解决方案
Below logic will helps you for converting a nested for loop to a recursive function. But don't add so much nested for
loop in code unnecessarily. Performance needs to be consider even while writing small programs.
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++;
}
}
}
这篇关于如何转换为嵌套循环到一个递归函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文