Dado a que este post ha tenido varias contribuciones y uno que otro no entendió su naturaleza recursiva, vamos directo al grano.
Solución de Nosredna:
Solución de Mic:
Solución de emcijey:
Solución de Bretton Sims:
Solución de Shadow wizard:
Solución de Martin Withaar:
Cualquier otro approach será bienvenido.