Prenez les nombres 0, 1, 2, 3, 4, ...
et disposez-les dans une spirale dans le sens des aiguilles d'une montre, en commençant vers le bas, en écrivant chaque chiffre dans son propre carré séparé.
Puis, étant donné l'un des quatre caractères ASCII distincts et cohérents (votre choix) représentant un axe et un entier d'entrée n
, sortez les premiers n
termes de la séquence décrite en sélectionnant des carrés le long de l'axe correspondant.
Par exemple, ci-dessous se trouve la spirale arrangée jusqu'à mi-parcours 29
. Supposons que nous utilisons u / d / l / r
pour nos quatre caractères, représentant up / down / left / right
. Puis, u
en entrée, nous sortons 0, 5, 1, 4 ...
(l'axe y positif) jusqu'au n
e terme. Si on nous donnait plutôt l
comme entrée, ce serait 0, 3, 1, 1 ...
jusqu'au n
terme.
2---3---2---4---2---5---2
| |
2 1---3---1---4---1 6
| | | |
2 2 4---5---6 5 2
| | | | | |
1 1 3 0 7 1 7
| | | | | | |
2 1 2---1 8 6 2
| | | | |
0 1---0---1---9 1 8
| | |
2---9---1---8---1---7 2
Ce sont des séquences sur OEIS:
- http://oeis.org/A033953 pour l'axe x positif
- http://oeis.org/A033988 pour l'axe y positif
- http://oeis.org/A033989 pour l'axe x négatif
- http://oeis.org/A033990 pour l'axe y négatif
Exemples
d 19
[0, 1, 1, 8, 3, 7, 6, 2, 1, 5, 1, 1, 6, 2, 2, 1, 3, 4, 0]
r 72
[0, 7, 1, 7, 4, 2, 8, 1, 1, 3, 1, 2, 0, 2, 3, 1, 3, 4, 6, 5, 5, 5, 7, 7, 8, 8, 9, 6, 8, 1, 1, 1, 2, 3, 1, 8, 0, 6, 1, 7, 0, 9, 2, 8, 4, 3, 2, 1, 1, 7, 2, 6, 2, 1, 3, 3, 5, 5, 3, 2, 2, 0, 4, 3, 2, 5, 4, 6, 5, 0, 5, 1]
u 1
[0]
Règles
- Le cas échéant, vous pouvez supposer que l'entrée / sortie s'adaptera au type Integer natif de votre langue.
- Si vous utilisez des entiers pour représenter les quatre axes, vous pouvez utiliser des entiers négatifs sans enfreindre les règles.
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.