You could graph it using a graphing calculator.
Ok, here we go...
In order to use a graph we need to assign a value to X and Y. For our equation, X will equal the number of moves John must make. We then write 2 functions, one for each of them.
John starts at zero, and for every move he makes, his value increases by 3 which can be represented by the equation...
Y1=0+3x
Sam starts at 100, but every move he makes is worth seven thirds (7/3) of every move John makes so his equation is...
Y2=100-(7/3)x
You then (using your graphing calculator) enter in the 2 formula. Hit the Graph key and 2 lines should appear. Expand the graph using the setting under Window if necessary.
Now go to 2nd, Table. Here is the tricky part. Remember that we used the # of Johns moves as the X value and that the equation for John was y=3x ? Well, we can use that information to figure out at what number they meet. Just scroll up or down the table until you find the point at which the Y1 value is 3 times as large as the Y2 value and the X value in that row is the number you are looking for.
So it looks like...
X Y1 Y2
30 90 30
Answer = x = 30.