매트릭스 채우기 문제



제목 설명


다음 형식의 방진을 채웁니다.
   1  16  15  14  13
   2  17  24  23  12
   3  18  25  22  11
   4  19  20  21  10
   5   6   7   8   9

입력 설명


한 줄에 정수 n 입력 (0

출력 설명


숫자당 4자리를 차지하는 채워진 행렬을 출력합니다.

샘플 가져오기

5

샘플 내보내기

   1  16  15  14  13
   2  17  24  23  12
   3  18  25  22  11
   4  19  20  21  10
   5   6   7   8   9

힌트


AC 코드는 다음과 같습니다.
#include int fillmatrix(int mat[10][10],int size,int num,int offset,int a) {     int i;     if(size==1)         mat[a/2][a/2]=a*a;     else         {             for(i=0;i             {                 mat[offset+i][offset]=num+i;                 mat[offset+size-1][offset+i]=num+size-1+i;                 mat[offset+size-1-i][offset+size-1]=num+2*(size-1)+i;                 mat[offset][offset+size-1-i]=num+3*(size-1)+i;                 fillmatrix(mat,size-2,num+4*(size-1),offset+1,a); }//귀속 충전 코어;(한 바퀴 작아진 행렬)}return mat [offset][offset];}int  main() {     int size,i,j,a;     int mat[10][10];     while(scanf("%d",&size)!=EOF)         {             a=size;             int offset=0;             int num=1;             fillmatrix(mat,size,num,offset,a);             for(i=0;i     {         for(j=0;j             printf("%4d",mat[i][j]);         printf("");     }        }        return 0; }

좋은 웹페이지 즐겨찾기