// StepsByRecursion.cpp // a recursive program to solve Steps problem // wdg 2008 #import using namespace std; static const int IMPOSSIBLE=-1; // @pre: required>=0 // @returns: minimum number of steps; a value of -1 means impossible int minSteps(int required, int allowed[], int numAllowed) { if(required==0) return 0; else { int min = required+1; //guaranteed to be too large // consider all valid first steps for(int poss=0; poss