Grains

Grains

Facile

Introduction

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.

Instructions

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 :

  • le nombre de grains sur une case donnée
  • le nombre total de grains sur l'échiquier

Les nombres en Euphoria

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.

32 bits

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.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Euphoria Exercism

Prêt à commencer Grains ?

Inscris-toi sur Exercism pour apprendre et maîtriser Euphoria avec 64 exercices, et un vrai mentorat humain, le tout gratuitement.