#include int main(){ int val = 0; scanf("%d",&val); // 出力する配列 int ans[val][val]; int reference = 0; int i = 1; while(i != (val * val) + 1){ if(reference % 4 == 0){ // みぎ for(int j = reference / 4;j < val - (reference / 4);j ++){ printf("i:%d j:%d 右\n",reference / 4,j); ans[reference / 4][j] = i; i++; } }else if(reference % 4 == 1){ // した for(int j = (reference / 4) + 1;j < val - (reference / 4) + 1;j ++){ printf("i:%d j:%d 下\n",j,(reference / 4) + 1); ans[j][(reference / 4) + 1] = i; i++; } }else if(reference % 4 == 2){ // ひだり for(int j = val - (reference / 4);j > reference/ 4;j --){ printf("i:%d j:%d 左\n",reference / 4,j); ans[reference / 4][j] = i; i++; } }else if(reference % 4 == 3){ // うえ for(int j = val - (reference / 4);j > reference/ 4;j --){ printf("i:%d j:%d 上\n",j,reference / 4); ans[j][reference / 4] = i; i++; } } reference++; } for(int i = 0;i < val;i ++){ for(int j = 0;j < val;j ++){ printf("%03d ",ans[i][j]); } printf("\n"); } }