我有一个关于 C++ 的问题。所以我制作了这个程序,它计算所有可能的组合以使用递归(而不是 9 个循环)来解决问题。这是代码的一部分:
int used[9];
nMin=1000;
void Combinations(int index)
{
if(index>8)
{
return;
}
for(int i=k;i<4;i++)
{
used[index]=i;
if (sum<nMin && Check())//Checks the solution
{
nMin = sum;
used[i]=0;
return;
}
else
{
Combinations(index+1);
}
}
}
每次递归调用返回时,应该重复 4 次的 for 循环重置。换句话说,循环变量设置为 0。这就是它的工作方式,我是否必须存储当前循环变量值,还是有其他方法。
编辑:谢谢你们,提供详细信息和您的答案。代码经过一些调整后工作。