Question
You are given a puzzle consisting of a row of squares that contain non-negative integers, with a zero in the rightmost square. You have a
You are given a puzzle consisting of a row of squares that contain non-negative integers, with a zero in the rightmost square. You have a token that starts on the leftmost square. On each turn, the token can shift left or right a number of squares equal to the value in its current square, but is not allowed to move off either end.
For example, if the row of squares contains these values: [2, 4, 5, 3, 1, 3, 1, 4, 0], then on the first turn the only legal move is to shift right two squares, because the starting square contains a 2, and the token can't move off the left end. The goal is to get the token to the rightmost square (that contains zero). This row has a solution (more than one), but not all rows do. If we start with the row [1, 3, 2, 1, 3, 4, 0], then there is no way for the token to reach the zero.
Write a recursive function named rowPuzzle that takes a vector of ints as a parameter and returns true if the puzzle is solvable for that row, but returns false otherwise.
C++ and cannot use any loops for this. Writing in recursive functions.
This is the input case:
std::vector myVec; myVec.push_back(1); myVec.push_back(0); ASSERT_EQ(rowPuzzle(myVec), true);
Current errors that keep coming up:
./tests.cpp:22:1: error: template argument 1 is invalid ASSERT_EQ(rowPuzzle(myVec), true); ^ ./tests.cpp:22:26: error: too few arguments to function bool rowPuzzle(std::vector, int, int*) ASSERT_EQ(rowPuzzle(myVec), true);
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started