我有一個關於C++的問題。所以我製作了這個程序,計算所有可能的組合來解決使用遞歸(而不是9個循環)的問題。這是代碼的一部分:遞歸重啓循環(C++)
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);
}
}
}
for循環,應該每次重複遞歸調用返回時重複4次。換句話說,循環變量被設置爲0.這就是它的工作方式,是否必須存儲當前循環變量值,或者是否有其他方法。
編輯:謝謝你們,詳細信息和你的答案。代碼經過一些調整後才起作用。
是「我是如何運作的」一個問題或陳述? – Joe
呃什麼是'k'? – Pierre
您的投訴是否在'Combinations(index + 1)'調用後將'i'設置爲0?如果是這樣,你如何測試這個,你確定你沒有看另一個'我'的化身? –