Mô tả vấn đề
Hãy tưởng tượng bạn là một con rùa trên lưới. Bạn được cho hai số f và b , và bạn đang quay mặt về hướng đông. Bạn thực hiện một cuộc diễu hành trên lưới, đếm từng ô bạn gặp phải, theo các quy tắc sau:
- Theo mặc định, bạn viết số đếm vào ô bạn đang ở, sau đó đi về phía trước.
- Nếu số đếm chia hết cho f , bạn ghi
F
vào ô bạn đang ở, sau đó rẽ phải, sau đó đi về phía trước. - Nếu số đếm chia hết cho b , bạn ghi
B
vào ô bạn đang ở, sau đó rẽ trái, sau đó đi về phía trước. - Nếu số đếm chia hết cho cả f và b , bạn viết
FB
vào ô bạn đang ở, sau đó đi về phía trước. - Nếu bạn đến một quảng trường bạn đã từng đến, bạn dừng lại.
Ví dụ: làm theo các quy tắc này bằng cách sử dụng f = 3 và b = 5 sẽ tạo ra một mẫu như thế này:
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
Các thách thức
Viết chương trình hoặc hàm chấp nhận hai số làm đầu vào, tương ứng với f và b và tạo ra mẫu đầu ra cho các số này được đưa ra bởi các quy tắc ở trên.
Yêu cầu định dạng:
- Mỗi ô rộng hai ký tự
- Nội dung ô được căn phải trong hai ký tự này
- Các ô trên cùng một hàng được phân cách bằng khoảng trắng
- Cột đầu tiên của các ô phải chứa một ô không trống
- Tất cả các hàng phải chứa các ô không trống
- Không cần phải lưu trữ khoảng trắng, nhưng được phép
- Tuy nhiên, tổng chiều rộng của mỗi hàng không được vượt quá 3 lần số cột không trống
Mã của bạn phải làm việc cho các trường hợp thử nghiệm được cung cấp.
Sơ hở tiêu chuẩn là không được phép.
Đây là mã golf; câu trả lời ngắn nhất trong byte thắng.
Các trường hợp thử nghiệm
(f = 3, b = 5 trường hợp được lặp lại ở đây như một sự thuận tiện lịch sự).
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