Problem
Original anzeigen (Englisch)Die unendliche Spirale beginnt in der Zelle oben links. Die ersten vier Zeilen und Spalten sind unten dargestellt. Setze das gleiche Muster in wachsenden quadratischen Schichten fort. Die Koordinaten beginnen bei 1.
1 2 9 10
4 3 8 11
5 6 7 12
16 15 14 13Gib den Wert einer einzelnen Zelle zurück, ohne das gesamte Gitter zu konstruieren.
Implementiere number_spiral(row, column).
Eingabe
row: Die von oben gezählte Zeile, beginnend bei 1.
column: Die von links gezählte Spalte, beginnend bei 1.
Ausgabe
Gib die Zahl an dieser Position zurück.
Einschränkungen
1 ≤ row, column ≤ 1.000.000.000. Der Wert passt in einen vorzeichenbehafteten 64-Bit-Integer.
Beispiele
Eingabe:
row = 3
column = 2
Erwartete Ausgabe:
expected = 6
Eingabe:
long long row = 3;
long long column = 2;
Erwartete Ausgabe:
long long expected = 6;
Eingabe:
long row = 3;
long column = 2;
Erwartete Ausgabe:
long expected = 6;
Erläuterung
In der dargestellten dritten Zeile ist der zweite Wert 6.
Eingabe:
row = 1
column = 4
Erwartete Ausgabe:
expected = 10
Eingabe:
long long row = 1;
long long column = 4;
Erwartete Ausgabe:
long long expected = 10;
Eingabe:
long row = 1;
long column = 4;
Erwartete Ausgabe:
long expected = 10;
Erläuterung
Die vierte quadratische Schicht beginnt in der obersten Zeile bei 10.
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.