Alle Herausforderungen
Mittel 0 gelöst 0% Erfolgsquote

Nummernspirale-Abfrage

Finde einen Wert anhand von Zeile und Spalte in einer expandierenden Nummernspirale.

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  13

Gib 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

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

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

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.