배열의 int를 팝하는 코드 줄이 int element
에 저장되고 배열에서 제거됩니다. return 문에서 CountCriticalVotes(rest, blockIndex + element);
을 반환하면 blockIndex
변수에 전달되고 배열이 비어지기 전에 10에 도달하면 1을 반환합니다.하지만 내 문제는 배열의 모든 값을 매개 변수를 추가하지만 매개 변수 값을 원래 상태로 되 돌린 다음 새 매개 변수 값을 다시 추가하십시오. 어떻게해야합니까?재귀 : 매개 변수로 전달 된 값을 사용합니다.
int NumCriticalVotes :: CountCriticalVotes(Vector<int> & blocks, int blockIndex)
{
if (blockIndex >= 10)
{
return 1;
}
if (blocks.isEmpty())
{
return 0;
} else {
int element = blocks.get(0);
Vector<int> rest = blocks;
rest.remove(0);
return CountCriticalVotes(rest, blockIndex + element);
이 재귀해야 하는가를? –
예! 나는 재귀를 배우기의 일환으로하고있다. –
이것은 당신에게 질문에 답하지 않을 수도 있지만, 문제는 불필요하게 보이는 블록 벡터를 수정하지 않고 이것을 할 수 있어야한다. 당신은'Vector const & blocks'로 넘겨 줄 수 있습니다. –