~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; }