Es war einmal ein weiser Diener, der das Leben eines Prinzen rettete. Der König versprach, ihm alles zu geben, was er sich nur wünschen konnte. Der Diener wusste, dass der König Schach liebte, und bat ihn um Weizenkörner. Ein Korn auf dem ersten Feld eines Schachbretts, und auf jedem weiteren Feld sollte sich die Anzahl der Körner verdoppeln.
Berechne die Anzahl der Weizenkörner auf einem Schachbrett.
Ein Schachbrett hat 64 Felder. Feld 1 hat ein Korn, Feld 2 hat zwei Körner, Feld 3 hat vier Körner und so weiter, wobei sich die Anzahl jeweils verdoppelt.
Schreibe Code, der Folgendes berechnet:
In Euphoria kann ein atom jede Art von Zahl aufnehmen, wobei der Untertyp integer für ganze Zahlen gedacht ist.
Es ist möglich, diese Übung in C-ähnlichen Sprachen zu lösen, indem man eine vorzeichenlose 64-Bit-Ganzzahl zurückgibt.
Allerdings sind Ganzzahlen in Euphoria vorzeichenbehaftet und ein Bit kleiner als das Maschinenwort, also zu klein für diese Übung, während Atome größere Ganzzahlen mit der nötigen 64-Bit-Präzision aufnehmen können.
Es gibt eine 32-Bit-Version von Euphoria, die immer noch existiert, damit Legacy-Anwendungen weiterhin vorkompilierte 32-Bit-dll/so verwenden können, wenn keine 64-Bit-Version verfügbar ist oder der Wrapper dafür voller hartkodierter 32-Bit-Offsets steckt. Diese Version ist völlig ungeeignet, um diese Übung zu lösen, da diese Atome nur 53 Bit Präzision haben. Wenn es dir schwerfällt, diese Übung lokal zu lösen, stell sicher, dass du eine 64-Bit-Version von Euphoria verwendest.
Melde dich bei Exercism an, um Euphoria mit 64 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.