blockIndex
メソッドを呼び出すときにの値を初期状態にリセットするにはどうすればよいですか?
それを呼び出して値 4 を渡すとします。その値が 9 より大きいかどうかを確認し、そうでない場合は at に要素を追加しpos(0)
ます。しかし、関数をトレースすると、ベクトルのすべての値が追加されていることがわかります。1つの要素を追加したいだけで、それが9より大きいかどうかを確認し、そうでない場合は、初期値に戻します。どうすればいいですか?
int NumCriticalVotes :: CountCriticalVotes(Vector<int> & blocks, int blockIndex)
{
if (blockIndex >= 9 && blocks.isEmpty())
{
return 1;
}
if (blocks.isEmpty()) //Fail case
{
return 0;
} else {
int element = blocks.get(0);
Vector<int> rest = blocks;
rest.remove(0);
return CountCriticalVotes(rest, blockIndex) || CountCriticalVotes(rest, blockIndex + element);
}
}