Deskripsi Masalah
Bayangkan Anda seekor kura-kura di atas kisi-kisi. Anda diberi dua angka f dan b , dan Anda menghadap ke timur. Anda melakukan pawai melintasi kisi-kisi, menghitung setiap sel yang Anda temui, sesuai dengan aturan berikut:
- Secara default, Anda menulis hitungan ke sel tempat Anda berada, lalu berjalan maju.
- Jika hitung dapat dibagi oleh f , Anda menulis
F
ke sel tempat Anda berada, lalu belok kanan, lalu berjalan maju. - Jika hitungannya dapat dibagi dengan b , Anda menulis
B
ke sel tempat Anda berada, lalu belok kiri, lalu berjalan maju. - Jika hitung dapat dibagi oleh f dan b , Anda menulis
FB
ke sel tempat Anda berada, lalu berjalan maju. - Jika Anda mencapai kotak Anda sudah pernah ke, Anda berhenti.
Misalnya, mengikuti aturan ini menggunakan f = 3 dan b = 5 akan menghasilkan pola seperti ini:
F 28 29 FB 1 2 F
26 4
F B B F
23 7
22 8
F B B F
19 11
F 17 16 FB 14 13 F
Tantangan
Tulis program atau fungsi yang menerima dua angka sebagai input, yang sesuai dengan f dan b , dan menghasilkan sebagai pola untuk angka-angka ini diberikan oleh aturan di atas.
Persyaratan pemformatan:
- Setiap sel memiliki lebar dua karakter
- Konten sel disejajarkan dengan benar dalam dua karakter ini
- Sel di baris yang sama dibatasi oleh spasi
- Kolom sel pertama harus berisi sel yang tidak kosong
- Semua baris harus mengandung sel yang tidak kosong
- Trailing whitespace tidak diperlukan, tetapi diizinkan
- Namun, total lebar setiap baris tidak boleh melebihi 3 kali jumlah kolom yang tidak kosong
Kode Anda harus berfungsi untuk kasus uji yang disediakan.
Celah standar tidak diijinkan.
Ini adalah kode golf; jawaban terpendek dalam byte menang.
Uji kasus
(f = 3, b = 5 kasus diulang di sini sebagai kenyamanan sopan).
f=3, b=5 ->
F 28 29 FB 1 2 F
26 4
F B B F
23 7
22 8
F B B F
19 11
F 17 16 FB 14 13 F
f=4, b=10 ->
F 25 26 27 F
23 29
22 1 2 3 F
21 5
FB 6
19 7
18 B 9 F
17 11
F 15 14 13 F
f=3, b=11 ->
F 16 17 F
14 19
13 1 2 F
F B 4
10 5
F 8 7 F
f=5, b=9 ->
F 41 42 43 44 1 2 3 4 F
39 6
38 7
37 8
F B B F
34 11
33 12
32 13
31 14
F 29 28 B B 17 16 F
26 19
F 24 23 22 21 F
f=5, b=13 ->
F 31 32 33 34 F
29 36
28 1 2 3 4 F
27 6
F B 7
24 8
23 9
22 B 12 11 F
21 14
F 19 18 17 16 F