Ambil angka-angka 0, 1, 2, 3, 4, ...
dan atur dalam spiral searah jarum jam, mulai dari bawah, tulis masing-masing angka di kotaknya sendiri.
Kemudian, mengingat salah satu dari empat karakter ASCII yang berbeda dan konsisten (pilihan Anda) mewakili suatu sumbu, dan bilangan bulat input n
, mengeluarkan n
istilah pertama dari urutan yang dijelaskan dengan memilih kotak di sepanjang sumbu yang sesuai.
Sebagai contoh, di bawah ini adalah spiral tersusun hingga setengah jalan 29
. Misalkan kita menggunakan u / d / l / r
untuk empat karakter kita, mewakili up / down / left / right
. Kemudian, diberikan u
sebagai input, kami output 0, 5, 1, 4 ...
(sumbu y positif) hingga n
istilah th. Jika kita sebaliknya diberi l
sebagai masukan, maka akan 0, 3, 1, 1 ...
sampai ke n
jangka th.
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
Ini adalah urutan pada OEIS:
- http://oeis.org/A033953 untuk sumbu x positif
- http://oeis.org/A033988 untuk sumbu y positif
- http://oeis.org/A033989 untuk sumbu x negatif
- http://oeis.org/A033990 untuk sumbu y negatif
Contohnya
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]
Aturan
- Jika berlaku, Anda dapat mengasumsikan bahwa input / output akan sesuai dengan tipe Integer asli bahasa Anda.
- Jika Anda menggunakan bilangan bulat untuk mewakili keempat sumbu, Anda bisa menggunakan bilangan bulat negatif tanpa melanggar aturan.
- Input dan output dapat diberikan dengan metode apa pun yang mudah .
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
sumber
Jawaban:
Python 2 ,
94898483747270 byteSaya menggunakan WolframAlpha dan menentukan bahwa batas atas 5 n > 4n 2 + 3n tampaknya cukup. Itu dapat diubah menjadi 9 n tanpa biaya. Untuk mencoba input yang lebih besar, gunakan
9*n*n
bukannya5**n
menghindari kehabisan memori.Cobalah online!
Input untuk arah adalah:
Disimpan 14 byte berkat Rod
Saved 2 byte terima kasih kepada Jonathan Allan
sumber
MATL , 32 byte
Input adalah
n
,, dia
manaa
mewakili sumbu sebagai berikut:0
: kiri;1
: naik;2
: Baik;3
: bawah.Output adalah string.
Cobalah online! Atau verifikasi semua kasus uji .
sumber
Jelly ,
1918 byteMenggunakan trik 5 n dari jawaban Python mbomb007
Sebuah tautan diad mengambil
n
di kiri dand
dan integer dari:[-3,-1,1,3]:[v,<,^,>]
Cobalah online!
Alternatif 20 byte yang jauh lebih cepat dan tidak segfault untuk n sekecil itu adalah:
Cobalah online!
Bagaimana?
sumber
akan bekerja untuk n yang cukup (seperti +1000)
JavaScript (Node.js) , 104 byte
Cobalah online!
Penjelasan
Digit ke-konstan konstan Champernowne
________________________________________________________
Metode kurang efisien (tidak akan berfungsi untuk 1000+)
JavaScript (Node.js) , 81 byte
Cobalah online!
sumber
Stax , 13 byte
Jalankan dan debug itu
Dibutuhkan input dengan arah, diikuti oleh hitungan. Kanan, atas, kiri, dan ke bawah
1
,3
,5
, dan7
masing-masing. Dibutuhkan satu menit penuh untuk menjalankan tiga test case yang disediakan.sumber