I'm going to weigh in on Elliot's side =)  Recursive solutions for all
their sluggishness are often the most elegent and easiest to read.

For what it's worth I would recomend:

1) Write your test.
2) Make it work in the dumbest possible way.
3) Profile.
4) Optimize as necessary.

"Premature optimization is the root of all evil." -- C. A. R. Hoare



--
Lou