/* BC133 回型矩阵 */
#include <stdio.h>
int main() {
int n = 0;
int array[20][20] = { 0 };
scanf("%d", &n);
int num = 1;
int lmargin = 0;
int rmargin = n - 1;
int count = 1;
int row = 0, col = 0;
while (lmargin <= rmargin)
{
while (col <= rmargin) //左上角->右上角
array[row][col++] = num++;
count++, col--, row++;
while (row <= rmargin) //右上角->右下角
array[row++][col] = num++;
count++, row--, col--;
while (col >= lmargin) //右下角->左下角
array[row][col--] = num++;
count++, col++, row--;
if (count == 4) //改变边界
lmargin++, rmargin--, count = 0;
while (row >= lmargin)
array[row--][col] = num++; //左下角->左上角
count++, row++, col++;
}
for (row = 0; row < n; row++)
{
for (col = 0; col < n; col++)
{
printf("%d ", array[row][col]);
}
printf("\n");
}
return 0;
}