This is the sort of thing I first thought; but nothing is said about how accurate the approximation has to be (or how certain we need to be that it is). It happens that 660 is a very close approximation in this case (659.9978957); is the answer meant to be accurate to the nearest integer, or hundredth, or ten? The kind of approximation you did (and that I would have done) does not guarantee anything better than, say, the nearest ten or hundred, as numbers are being rounded to only one significant digit. (The last step, approximating 1/2 as 1, in effect gave a possible error of 30!) The answer appears to be a matter of luck.
The real question is, what are the real requirements? There are mental math tricks stronger than this sort of approximation, but they take a lot of learning, and probably still take more than a few seconds to do. Doing the calculations by hand to the nearest integer, it probably took me no more than a minute or two. There is no real sense in demanding speed and accuracy at the level apparently expected, even if there are no calculators existing in the country where this is done. And if that is really demanded, then they would be teaching the appropriate methods.