Tous les défis
Moyen 0 résolus 0 % de réussite

Recherche dans une spirale numérique

Trouvez une valeur à partir de la ligne et de la colonne dans une spirale numérique en expansion.

La spirale infinie commence dans la cellule en haut à gauche. Les quatre premières lignes et colonnes sont illustrées ci-dessous. Continuez le même motif en couches carrées qui s'étendent. Les coordonnées commencent à 1.

 1   2   9  10
 4   3   8  11
 5   6   7  12
16  15  14  13

Retournez la valeur d'une cellule sans construire toute la grille.

Implémentez number_spiral(row, column).

Entrée

row : La ligne comptée depuis le haut, en commençant à 1.

column : La colonne comptée depuis la gauche, en commençant à 1.

Sortie

Retournez le nombre à cette position.

Contraintes

1 ≤ row, column ≤ 1 000 000 000. La valeur tient dans un entier signé 64 bits.

Exemples

Exemple 1
Entrée :
row = 3
column = 2

Sortie attendue :
expected = 6
Entrée :
long long row = 3;
long long column = 2;

Sortie attendue :
long long expected = 6;
Entrée :
long row = 3;
long column = 2;

Sortie attendue :
long expected = 6;

Explication

Dans la troisième ligne affichée, la deuxième valeur est 6.

Exemple 2
Entrée :
row = 1
column = 4

Sortie attendue :
expected = 10
Entrée :
long long row = 1;
long long column = 4;

Sortie attendue :
long long expected = 10;
Entrée :
long row = 1;
long column = 4;

Sortie attendue :
long expected = 10;

Explication

La quatrième couche carrée commence à 10 dans la ligne du haut.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.