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);
}
}
}
for ループは、再帰呼び出しが戻るたびにリセットを 4 回繰り返す必要があります。つまり、ループ変数は 0 に設定されています。それがどのように機能するのか、現在のループ変数の値を保存する必要があるのか、それとも別の方法があるのかということです。
編集:詳細な情報と回答をありがとうございます。コードは、いくつかの調整後に機能しました。