● 정방행렬의 규칙 ( 마방진 )
① 첫 번째 행의 중앙에 1을 넣는다.
② 왼쪽 대각선 방향으로 올라가면서 빈자리에 1씩 큰 수를 놓는다.
이때 행렬의 밖으로 벗어나면 그 방향의 반대편에서 계속하라.
즉 상단을 벗어나면 같은 열의 최하단으로, 왼쪽으로 벗어나면 같은 행의 제일 오른쪽으로 이동한다.
③ 만약 이동하려는 자리에 숫자가 이미 채워져 있으면 바로 밑으로 가서 계속하라.
i = 0 ; j = (n-1) / 2;
table[i][j] = 1;
for ( count = 2; count <= n*n ; count++ ) {
row = (i-1 < 0) ? (n-1) : (i-1); // up
col = (j-1 < 0) ? (n-1) : (j-1); // left
if ( table[row][col]) i++;
else {
i = row ; j = col ;
}
table[i][j] = count;
}
'Programming' 카테고리의 다른 글
DK2 관련 정보 (0) | 2015.01.29 |
---|---|
데이터베이스 개념 (0) | 2015.01.24 |
정렬/검색 알고리즘 (0) | 2015.01.15 |
재귀함수 관련 알고리즘 (0) | 2015.01.15 |
그래프 (0) | 2015.01.11 |