Dunia adalah susunan sel lima demi lima. Itu membungkus di semua sisi. Ini dapat divisualisasikan seperti ...
XXXXX XXXXX XXOXX XXXXX XXXXX
Anda seorang O. Anda suka bepergian ke dunia, dan Anda melakukannya sesuai dengan aturan berikut (misalkan C menjadi hari ini):
- Pada hari-hari utama , Anda merasa nostalgia. Kembali ke tempat Anda mulai kemarin.
- Pada hari-hari aneh , Anda merasa rindu. Pindahkan satu langkah horizontal lebih dekat ke rumah, jika memungkinkan, dan satu langkah vertikal lebih dekat ke rumah, jika memungkinkan. Abaikan pembungkus dunia untuk tujuan menentukan kedekatan.
- Pada bahkan hari, Anda merasa petualang. Pindahkan langkah C / 2 ke selatan.
- Pada hari-hari persegi , Anda merasa neko. Pindah ke dinding timur.
- Pada hari-hari Fibonacci , dunia meluas ke selatan dengan satu baris.
- Pada hari-hari segitiga , dunia mengembang ke arah timur dengan satu kolom.
Jika dua atau lebih dari aturan di atas akan berlaku secara bersamaan, terapkan dalam urutan yang tercantum. Misalnya, pada hari perdana yang aneh, kembalilah ke tempat Anda mulai kemarin, dan kemudian selangkah lebih dekat ke rumah.
Anda tinggal di pusat dunia (awal), yaitu posisi (2,2), diindeks nol dari sudut Northwest. Anda memulai perjalanan Anda di sana pada hari pertama.
Memasukkan
Bilangan bulat tunggal, N.
Keluaran
Koordinat X dan Y Anda pada hari ke-N, diindeks nol dari sudut Northwest, dipisahkan oleh satu spasi.
Test Case Dengan Penjelasan
Diberikan input dari 3
, output yang benar adalah:
2 3
Kita dapat mengerjakan ini satu hari pada suatu waktu. Mulai hari 1, kita perlu menerapkan langkah-langkah berikut:
- Aneh, kuadrat, Fibonacci, dan segitiga
- Perdana, datar, dan Fibonacci
- Perdana, ganjil, Fibonacci, dan segitiga
Dalam bentuk visual:
Hari 1 Hari 2 Hari 3 XXXXX XXXXXX XXXXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXOXX -> XXXXOX -> XXXXXX -> XXXOXXX XXXXX XXXXXX XXOXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXXXXX XXXXXX XXXXXXX XXXXXX XXXXXXX XXXXXXX
Kasus Uji Tambahan
Courtesy of Martin Büttner 's solusi referensi (silakan perhatikan bahwa Anda harus keluaran hanya koordinat tunggal, tidak semua dari mereka):
Input: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Output: 4 2 2 3 3 2 6 4 2 2 2 5 2 2 2 6 7 5 7 0 6 4 6 0 5 3 5 10 4 9 9 6 3 8 3 6 2 7 2 6 2 5 2 4 2 4
Ini kode golf. Pengajuan terpendek menang.
Jawaban:
Pyth,
157156153 byteAnda dapat mencobanya di sini.
Ini adalah masalah yang menyenangkan untuk bermain golf! Saya masih terbiasa dengan Pyth, tapi itu bahasa yang sangat bagus.
sumber
,
- itulah gunanya .(G%+H/N2b)
,(GH)
,(tZH)
.Haskell, 394 byte
Ini pasti dapat dioptimalkan dan juga setelah dengan cepat memeriksa kebenarannya
sepertinya saya mendapatkan hasil yang berbeda dari yang diposting. Saya akan kembali dan memeriksa kode saya secara lebih menyeluruh ketika saya memiliki lebih banyak waktu ^^Masalah yang bagus!
EDIT: edit solusi saya dengan mempertimbangkan nasihat berharga yang diberikan oleh Zgarb . Sekarang bekerja dengan sempurna!
EDIT2: terima kasih kepada nimi saya telah membuat kode lebih kecil. Saya sekarang juga melakukan pemeriksaan genap dan ganjil dalam satu fungsi alih-alih dua fungsi yang secara keseluruhan menurunkan jumlah dari 446 menjadi 414 byte.
EDIT3: selanjutnya ditingkatkan dari 414 menjadi 400 byte. Terima kasih nimi untuk 2 byte lagi, Anda siap! :)
EDIT4: 4 byte lagi oleh nimi :)
sumber
0<1
lebih pendek dariotherwise
, dan0/=mod x y
dapat disingkat0<mod x y
. Juga,1==mod(d)2
iniodd d
dan0==mod(d)2
itueven d
.0<1
bukannyaotherwise
bekerja?t
), karenaelem d[1..div(d*d-d)2]
berlaku untuk semuad > 2
.otherwise
hanyalah nama lain untukTrue
.C,
425396 byteAda bagian ini yang bisa diperbaiki, tetapi berfungsi untuk kasus uji .
Penjelasan
sumber
Perl 5, 284 byte
283 bytes, ditambah 1 untuk
-E
bendera bukan-e
Kode yang sama tetapi dengan lebih banyak spasi putih, lebih banyak tanda kurung, dan nama variabel yang lebih panjang:
Saya yakin ini bisa di mainkan lebih lanjut.
sumber
Javascript,
361359 byteKode menggunakan tugas Destrukturisasi . Ini hanya didukung di Firefox dan Safari sekarang.
Penjelasan
sumber