Había una vez un sirviente sabio que salvó la vida de un príncipe. El rey prometió pagarle lo que el sirviente fuera capaz de imaginar. Como sabía que al rey le encantaba el ajedrez, el sirviente le dijo que quería granos de trigo. Un grano en la primera casilla de un tablero de ajedrez, y el número de granos se duplicaba en cada casilla siguiente.
Calcula la cantidad de granos de trigo que hay en un tablero de ajedrez.
Un tablero de ajedrez tiene 64 casillas. La casilla 1 tiene un grano, la casilla 2 tiene dos granos, la casilla 3 tiene cuatro granos, y así sucesivamente, duplicándose cada vez.
Escribe código que calcule:
Este tipo de problemas (en los que una respuesta depende de una anterior) suelen recibir el nombre de recursión. Hay distintas maneras de programar la recursión; quizá valga la pena investigar al respecto si no la conoces. Pharo está bien optimizado para la recursión, y es un patrón que se usa mucho.
Nota: en la especificación original del problema, se llama a grainsCalculator mediante #square; sin embargo, hemos renombrado este método a #atSquare:, un nombre más al estilo de Smalltalk, que describe mejor que estás pidiendo una respuesta «en una casilla».
Regístrate en Exercism para aprender y dominar Pharo con 50 ejercicios y mentoría humana real, todo gratis.