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.
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 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.
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.
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.