Il était une fois un serviteur sage qui sauva la vie d'un prince. Le roi promit de payer tout ce que le serviteur pourrait imaginer. Sachant que le roi aimait les échecs, le serviteur lui dit qu'il aimerait recevoir des grains de blé. Un grain sur la première case d'un échiquier, le nombre de grains doublant à chaque case suivante.
Calcule le nombre de grains de blé sur un échiquier.
Un échiquier comporte 64 cases. La case 1 contient un grain, la case 2 en contient deux, la case 3 en contient quatre, et ainsi de suite, en doublant à chaque fois.
Écris du code qui calcule :
En Euphoria, un atom peut contenir n'importe quel type de nombre, avec le sous-type integer prévu pour les nombres entiers.
Il est possible de résoudre cet exercice dans des langages de type C en renvoyant un entier 64 bits non signé.
Cependant, les entiers en Euphoria sont signés et plus petits d'un bit que le mot machine, donc trop petits pour cet exercice, alors que les atoms peuvent contenir des entiers plus grands avec les 64 bits de précision nécessaires.
Il existe une version 32 bits d'Euphoria, qui subsiste encore pour que les applications héritées puissent continuer à utiliser des dll/so 32 bits précompilées lorsqu'aucune version 64 bits n'est disponible, ou lorsque le wrapper de celles-ci est plein d'offsets 32 bits « en dur », c'est-à-dire écrits directement dans le code plutôt que calculés. Cette version est totalement inadaptée pour résoudre cette tâche, car ces atoms ne disposent que de 53 bits de précision. Si tu as du mal à résoudre cet exercice en local, vérifie bien que tu utilises une version 64 bits d'Euphoria.
Inscris-toi sur Exercism pour apprendre et maîtriser Euphoria avec 64 exercices, et un vrai mentorat humain, le tout gratuitement.