static void Main(string[] args)
  {
   //BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
   //System.out.print("홀수를 입력하세요 : ");
   //int odd=Integer.parseInt(buf.readLine());
   Console.Write("홀수를 입력하쇼...");
   int odd;
   odd = Console.Read() - 48;
   //int odd = 5;
   if((odd%2)!=0)
   {
    int[,] arr=new int[odd,odd];
    arr[0,odd/2]=1;
    int x=0;
    int y=odd/2;
    for(int i=2;i<=(odd*odd);i++)
    {
     if(x-1<0 && y+1<odd)  //위로 벗어날 때
     {
      arr[odd-1,y+1]=i;
      x=odd-1;
      y=y+1;
     }
     else if(x-1>=0 && y+1>=odd)  //오른쪽으로 벗어날 때
     {
      arr[x-1,0]=i;
      x=x-1;
      y=0;
     }
     else if(x-1<0 && y+1>=odd)  //위와 오른쪽으로 벗어날 때
     {
      arr[x+1,y]=i;
      x=x+1;
     }
     else if(x-1>=0 && y+1<odd)  //벗어나지 않을 때
     {
      if(arr[x-1,y+1]==0)  //배열이 비어있으면
      {
       arr[x-1,y+1]=i;
       x=x-1;
       y=y+1;
      }
      else if(arr[x-1,y+1]!=0)  //배열에 값이 들어있으면
      {
       arr[x+1,y]=i;
       x=x+1;
      }
     }
    }
    for(int i=0;i<odd;i++)
    {
     for(int j=0;j<odd;j++)
     {
      if(arr[i,j]>9)
       Console.Write(arr[i,j]+" ");
      else
       Console.Write(" "+arr[i,j]+" ");
     }
     Console.WriteLine();
    }
 
   }
   else
   {
    Console.Write("짝수를 입력하셨습니다.");
   }
 
  } //main

+ Recent posts