본문 바로가기

Programming

정방행렬(마방진)

● 정방행렬의 규칙 ( 마방진 )

① 첫 번째 행의 중앙에 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