문제 설명
당신이 격자의 거북이라고 상상해보십시오. 두 개의 숫자 f 와 b 가 주어지고 동쪽을 향하고 있습니다. 다음 규칙에 따라 발생하는 각 셀을 계산하여 그리드에서 행진을 수행합니다.
- 기본적으로 셀 수를 셀에 쓴 다음 앞으로 나아갑니다.
- 카운트를 f 로 나눌 수있는 경우 들어
F
있는 셀에 쓴 다음 오른쪽으로 돌고 앞으로갑니다. - 카운트를 b 로 나눌 수 있다면 현재
B
있는 셀에 쓴 다음 왼쪽으로 돌고 앞으로갑니다. - 카운트를 f 와 b 로 나눌 수 있으면 현재
FB
있는 셀에 쓴 다음 앞으로갑니다. - 이미 가본 사각형에 도달하면 중지합니다.
예를 들어, 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 와 b에 해당하는 두 숫자를 입력으로 받아들이고 위의 규칙에 따라 주어진 숫자에 대한 패턴을 출력 하는 프로그램이나 함수를 작성하십시오 .
포맷 요구 사항 :
- 각 셀의 너비는 두 자입니다
- 이 두 문자 내에서 셀 내용이 올바르게 정렬됩니다.
- 같은 행의 셀은 공백으로 구분됩니다.
- 셀의 첫 번째 열은 비어 있지 않은 셀을 포함해야합니다
- 모든 행은 비어 있지 않은 셀을 포함해야합니다.
- 후행 공백은 필요하지 않지만 허용됩니다.
- 그러나 각 행의 총 너비는 비어 있지 않은 열 수의 3 배를 초과하지 않아야합니다.
제공된 테스트 사례에 대해 코드가 작동해야합니다.
표준 허점은 허용되지 않습니다.
이것은 코드 골프입니다. 바이트 단위의 최단 답변이 이깁니다.
테스트 사례
(여기서 편의상 f = 3, b = 5 사례를 반복 함).
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