'홀수'에 해당되는 글 1건
- 2006/06/09 홀수 마방진(C 코드)
1) 홀수 마방진 프로그램을 작성하시오
number = 3 일때:
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
number = 5 일때:
| 17 | 24 | 1 | 8 | 15 |
| 23 | 5 | 7 | 14 | 16 |
| 4 | 6 | 13 | 20 | 22 |
| 10 | 12 | 19 | 21 | 3 |
| 11 | 18 | 25 | 2 | 9 |
홀수 마방진을 만드는 규칙
- 주어진 배열(3X3, 또는 5x5)의 맨위줄의 가운데 칸에서 시작한다.
- 현재위치에서 대각선으로 오른쪽 위로 진행하면서 다음 값을 넣는다.
- 첫 줄 다음은 맨아래 줄이 된다.
- 마지막 칸의 다음은 첫 칸이 된다.
- 진행방향에 값이 이미 들어있을 경우에는 원래의 칸에서 한칸 밑으로 내려온다.
예를 들어서 3x3 홀수 마방진의 경우를 보자.
끝.
a[-1][2] 로 진행해야 하지만 -1 줄은 없는경우이다.
따라서 a[2][2]로 진행한다.
a[1][3] 으로 진행해야 하지만 3칸은 없다.
따라써 a[1][0] 으로 진행한다.
a[0][1] 로 진행해야 하지만 이미 값이 들어있다.
따라서 a[2][0] 으로 한칸 내려 온다.
a[1][1] 로 진행한다.
a[0][2] 로 진행한다.
a[-1][3] 으로 진행한다. -1줄, 3칸은 없는 경우이다.
따라서 a[2][0]으로 진행한다. 이미 값이 들어있다.
따라서 원래의 위치 a[0][2]에서 한칸 내려온다.
a[1][2]로 진행한다.
a[0][3] 으로 진행한다. 3은 없는 칸이다.
따라서 a[0][0] 으로 진행한다.
a[-1][1]로 진행한다. -1 줄은 없는 줄이다.
따라서 a[2][1]로 진행한다.
이와같이 마방진을 채워나간다.
-------------------------------------------------------------


