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
uhm 무엇이'k'입니까? – Pierre
'Combinations (index + 1)'을 호출 한 후'i'가 0으로 설정되었다는 불만이 있습니까? 그렇다면 어떻게 테스트하고 'i'의 다른 화신을 보지 않을 것이라고 확신합니까? –