0

How do I reset the value of blockIndex to its inital state when I call the method?

Say if I call it and pass in the value 4. I check if that value is greater than 9, if not I add the element at pos(0). But in tracing my function I see that it adds all the values of the vector. I just want it to add 1 element, then when it check if it is greater than 9, and it is not, revert it back to the initial value. How do I do this?

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);
    }
}
4

0 回答 0