Gabonaszemek

Gabonaszemek

Könnyű

Bevezetés

Volt egyszer egy bölcs szolga, aki megmentette egy herceg életét. A király megígérte, hogy megadja neki mindazt, amit a szolga csak kigondol. A szolga tudta, hogy a király szeret sakkozni, ezért azt kérte tőle, hogy búzaszemeket kapjon. Egy szem a sakktábla első mezőjén, a szemek száma pedig minden következő mezőn megduplázódik.

Utasítások

Számítsd ki, hány búzaszem van egy sakktáblán.

A sakktábla 64 mezőből áll. Az 1. mezőn egy szem van, a 2. mezőn kettő, a 3. mezőn négy, és így tovább, minden mezőn megduplázódik a szemek száma.

Írj kódot, amely kiszámítja:

  • az adott mezőn lévő szemek számát
  • a sakktáblán lévő szemek összes számát

Számok Euphoriában

Az Euphoriában egy atom bármilyen számot tárolhat, az integer altípus pedig az egész számokra való. C-szerű nyelvekben meg lehet oldani ezt a feladatot egy előjel nélküli 64 bites egész szám visszaadásával.

Az Euphoria egész számai azonban előjelesek, és egy bittel kisebbek a gép szóhosszánál, így túl kicsik ehhez a feladathoz, az atomok viszont a szükséges 64 bites pontossággal is el tudnak tárolni nagyobb egész számokat.

32 bites

Létezik az Euphoriának egy 32 bites verziója is, amely azért maradt meg, hogy a régi alkalmazások továbbra is használhassák az előre lefordított 32 bites dll/so fájlokat, amikor nem érhető el 64 bites verzió, vagy az ezekhez tartozó wrapper tele van beégetett 32 bites eltolással. Ez a verzió teljesen alkalmatlan a feladat megoldására, mivel ezek az atomok csupán 53 bites pontossággal bírnak. Ha nehezen boldogulsz a feladat helyi megoldásával, győződj meg róla, hogy a Euphoria 64 bites verzióját használod.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Euphoria Exercism

Készen állsz elkezdeni a(z) Gabonaszemek feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Euphoria nyelvet 64 feladat segítségével, valódi emberi mentorálással, mindez ingyen.