~cpp #include <iostream> using namespace std; int main() { int size; int i, j; do{ // 복 cout << "마방 () : "; cin >> size; if ( !(size%2)) cout << "!\n"; }while(!(size%2)); int **board = new int * [size+2]; //동 2 배 for(i=0; i< size+2; i++) board[i] = new int [size+2]; for(i=0; i<size+2; i++) //배 for(j=0; j<size+2; j++) board[i][j] = 0; int num = 1; int row = 1; int mid = size / 2; int col = mid + 1; board[row][col] = num; while(num != size*size) //를 복 { row --; col ++; // , 른 if (row == 0) //벽 부딪 row = size; // 변 if (col == size+1) //벽 부딪 col = 1; // 변 if (!board[row][col]) //리 { num++; board[row][col] = num; // 대 } else //리 른 { row ++; col --; // 돌 if (row == 0) //벽 부딪 row = size; // 변 if (col == size) //벽 부딪 col = 1; // 변 if ( row == size && col == 1)// 맨 { row=1; col = size; //른 맨 } else // 밖 { row--; col++; //돌림 } row++; // num++; board[row][col] = num; // 대 } } for(i=1; i<size+1; i++) // { for(j=1; j<size+1; j++) { cout << board[i][j] <<"\t"; } cout << "\n"; } return 0; }