멀리 떨어진 왕국에서 체스 여왕은 나선 경로를 따라 매일 걸어 n다닙니다. 나선 자체를 따르지 않고 단순히 체스 판에서 여왕의 움직임을 만듭니다. 여왕은 그녀의 주제에 의해 사랑 받고, 그녀가 그녀의 길을 방문하는 모든 광장을 기록합니다. 여왕이 어떤 광장에서든 걷기를 시작하고 어떤 광장에서나 끝낼 수 있다는 것을 감안할 때, 그녀가 취할 수있는 가장 짧은 여왕의 걷기는 무엇입니까?
도전
사각형 격자에 정수의 나선이 주어지면 체스 여왕의 움직임을 사용 하여이 나선형 격자의 두 숫자 사이에서 가능한 가장 짧은 경로 중 하나 (이동 한 셀 수로 계산) 를 반환하는 함수를 작성하십시오 .
예를 들어,에서 16에 25:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
가능한 경로는 16, 4, 2, 10, 25및 16, 5, 1, 9, 25입니다.
규칙
- 입력은 두 개의 양의 정수입니다.
- 출력은 직교 및 대각선 이동 만 사용하여 나선에 걸쳐 정수 경로 (두 끝점 포함)가됩니다.
- 경로의 길이는 이동 한 셀 수로 계산됩니다.
- 귀하의 답변은 프로그램 또는 기능 일 수 있습니다.
- 이것은 코드 골프이므로 가장 적은 수의 바이트가 이깁니다.
문제가 명확하지 않은 경우 언제든지 알려주십시오. 행운과 좋은 골프!
테스트 사례
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1

