Prendi i numeri 0, 1, 2, 3, 4, ...e disponili in una spirale in senso orario, iniziando verso il basso, scrivendo ogni cifra nel suo quadrato separato.
Quindi, dato uno dei quattro caratteri ASCII distinti e coerenti (a scelta) che rappresentano un asse e un intero di input n, emettono i primi ntermini della sequenza descritta selezionando i quadrati lungo l'asse corrispondente.
Ad esempio, di seguito è riportata la spirale sistemata fino a metà 29. Supponiamo di usare u / d / l / rper i nostri quattro personaggi, che rappresentano up / down / left / right. Quindi, dato ucome input, produciamo 0, 5, 1, 4 ...(l'asse y positivo) fino al nth termine. Se invece ci venisse dato lcome input, allora sarebbe 0, 3, 1, 1 ...fino al nterzo termine.
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
Queste sono sequenze su OEIS:
- http://oeis.org/A033953 per l'asse x positivo
- http://oeis.org/A033988 per l'asse y positivo
- http://oeis.org/A033989 per l'asse x negativo
- http://oeis.org/A033990 per l'asse y negativo
Esempi
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]
Regole
- Se applicabile, puoi supporre che l'input / output si adatti al tipo intero nativo della tua lingua.
- Se si utilizzano numeri interi per rappresentare i quattro assi, è possibile utilizzare numeri interi negativi senza infrangere le regole.
- L'input e l'output possono essere forniti con qualsiasi metodo conveniente .
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf, quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).