이것은 Calvin 's Hobbies 최근 곱셈 테이블 도전 에서 영감을 받았습니다 .
정수 N를 입력으로 사용하고 NxN 고유 곱셈 나선을 인쇄하거나 반환 하는 함수 또는 프로그램을 작성하십시오 . 코드는 이론적으로 0에서 1000 사이의 N에 대해 작동해야합니다 (출력이 어려울 수 있음). 출력은 다음 절차에 따라 생성 된 테이블과 동일해야합니다.
NxN 곱셈표를 작성하십시오. 예를 들어 N = 3 :
1 2 3 2 4 6 3 6 9왼쪽 상단에서 시계 방향으로 나선을 따라 방문한 숫자를 적어 둡니다. 이미 방문한 번호를 방문하면 0으로 바꾸십시오.
몇 가지 예가 더 명확해질 수 있습니다.
n = 0:
0
n = 1:
1
n = 2: // Spiral order:
1 2 // 1 2
0 4 // 4 3
n = 3:
1 2 3 // 1 2 3
0 4 6 // 8 9 4
0 0 9 // 7 6 5
n = 4:
1 2 3 4 // 1 2 3 4
0 0 6 8 // 12 13 14 5
0 0 9 12 // 11 16 15 6
0 0 0 16 // 10 9 8 7
n = 5:
1 2 3 4 5
0 0 6 8 10
0 0 9 12 15
0 0 0 16 20
0 0 0 0 25
n = 10:
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 12 14 16 18 20
0 0 0 0 15 0 21 24 27 30
0 0 0 0 0 0 28 32 36 40
0 0 0 0 25 0 35 0 45 50
0 0 0 0 0 0 42 48 54 60
0 0 0 0 0 0 49 56 63 70
0 0 0 0 0 0 0 64 72 80
0 0 0 0 0 0 0 0 81 90
0 0 0 0 0 0 0 0 0 100
숫자는 다음과 같습니다.
합리적인 출력 형식이 허용되지만 N-N-N 행렬이어야하며 목록 일 수는 없습니다. N을 쉽게 구별 할 수있는 1xN 열 또는 Nx1 행이 있으므로 아래와 같은 형식이 허용됩니다.
[[1 2 3][0 4 6][0 0 9]] <-- OK
[[1 0 0][2 4 0][3 6 9]] <-- OK
ans = <-- OK
1 2 3
0 4 6
0 0 9
바이트 단위의 최단 코드가 이깁니다.
n=0곱셈 테이블에서 0이없는 곳에 출력이있는 이유는 무엇입니까? n=1출력 1을 이해할 수 있지만 왜 0을 포함합니까?
n=0이어야합니다. 그렇지 않으면 질문이 일치하지 않습니다.



