Problem
Original anzeigen (Englisch)Feld 1 enthält ein Korn. Jedes nachfolgende Feld enthält doppelt so viele Körner wie das vorherige Feld. Gib sowohl die Anzahl auf dem angeforderten Feld als auch die Gesamtsumme auf den Feldern 1 bis 64 zurück. Schreibe jede Anzahl als Dezimaltext, da die Gesamtsumme des Brettes zu groß für einen vorzeichenbehafteten 64-Bit-Integer ist.
Implementiere chessboard_grains(square).
Eingabe
square: Das angeforderte Feld, nummeriert ab 1.
Ausgabe
Gib zwei Dezimalstrings zurück: [Anzahl auf dem angeforderten Feld, Gesamtsumme auf allen 64 Feldern].
Einschränkungen
1 ≤ square ≤ 64. Die Ausgabestrings enthalten nur Dezimalziffern, ohne Kommas, Leerzeichen oder führende Nullen.
Beispiele
Eingabe:
square = 6
Erwartete Ausgabe:
expected = ["32", "18446744073709551615"]
Eingabe:
long long square = 6;
Erwartete Ausgabe:
std::vector<std::string> expected = {"32", "18446744073709551615"};
Eingabe:
long square = 6;
Erwartete Ausgabe:
string[] expected = new string[] {"32", "18446744073709551615"};
Erläuterung
Die ersten sechs Anzahlen sind 1, 2, 4, 8, 16, 32. Die Gesamtsumme des Brettes ist 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1.
Eingabe:
square = 1
Erwartete Ausgabe:
expected = ["1", "18446744073709551615"]
Eingabe:
long long square = 1;
Erwartete Ausgabe:
std::vector<std::string> expected = {"1", "18446744073709551615"};
Eingabe:
long square = 1;
Erwartete Ausgabe:
string[] expected = new string[] {"1", "18446744073709551615"};
Erläuterung
Das erste Feld enthält 1 Korn. Die zweite Ausgabe bezieht sich immer auf alle 64 Felder, nicht nur auf das angeforderte Präfix.
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.