私のコードがこの割り当てで機能しない理由について、いくつかの指針を教えてください。私の考えはindex
、Vector内の現在の場所であるtarget
(param)と、配列内の指定されたインデックスの値である(param)を持つことです。次に、ベースケースの1つに到達するまで上下に移動します。しかし、それは機能しません。
主な問題は、これまでのところ間違った結果しか出力しないことです。
bool RecursivePuzzle :: SolvableReal(Vector<int> & squares, int index, int target)
{
if (target == 0 && index == squares.size() ) return true;
if (index >= squares.size()) return false;
if (index < 0) return false;
int goUp = squares[index] + index;
int goDown = squares[index] - index;
return SolvableReal(squares, goUp, squares[index]) ||
SolvableReal(squares, goDown, squares[index]);