Érase una vez un sirviente sabio que salvó la vida de un príncipe. El rey prometió pagarle todo lo que el sirviente fuera capaz de imaginar. Sabiendo que al rey le encantaba el ajedrez, el sirviente le dijo que le gustaría tener granos de trigo. Un grano en la primera casilla de un tablero de ajedrez, y el número de granos duplicándose en cada casilla sucesiva.
Calcula el número de granos de trigo 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:
En Euphoria, un atom puede contener cualquier tipo de número, con el subtipo integer pensado para números enteros.
Es posible resolver este ejercicio en lenguajes tipo C devolviendo un entero de 64 bits sin signo.
Sin embargo, los enteros en Euphoria tienen signo y son un bit más pequeños que la palabra de la máquina, por lo que son demasiado pequeños para este ejercicio, mientras que los átomos pueden contener enteros más grandes con los 64 bits de precisión necesarios.
Existe una versión de 32 bits de Euphoria, que sigue existiendo para que las aplicaciones heredadas puedan seguir usando dll/so de 32 bits precompilados cuando no hay disponible una versión de 64 bits, o cuando el wrapper de estos está lleno de desplazamientos de 32 bits codificados directamente. Esta versión es totalmente inadecuada para resolver esta tarea, ya que esos átomos solo tienen 53 bits de precisión. Si tienes problemas para resolver este ejercicio en local, asegúrate de que estás usando una versión de 64 bits de Euphoria.
Regístrate en Exercism para aprender y dominar Euphoria con 64 ejercicios y mentoría humana real, todo gratis.