본문 바로가기

JAVA/알고리즘 예제

[JAVA] 마방진

package javalesson.com.javalesson.ch01test;


public class T03Diamond {

public static void main(String[] main){

int array[][] = new int[5][5];

int row,col;

int cnt;

row=0;col=(5/2);  //마방진을 시작할 위치 지정

for(cnt=1;cnt<=25;cnt++){

array[row][col]=cnt;

if(cnt%5==0){

row++;

if(row==5)row=0;

}else{

row--;col++;

if(row==-1)row=4;

if(col==5)col=0;

}

}

//출력

for(row=0;row<=4;row++){

for(col=0;col<=4;col++){

System.out.printf("%3d",array[row][col]);

}

System.out.println();

}

}

}


package javalesson.com.javalesson.ch01test;


public class T03Diamond {

public static void main(String[] main){

Scanner scan = new Scanner(System.in);

int deg;

while(true){

try{

System.out.print("마방진의 차수를 입력하세요. : ");

deg = scan.nextInt();

if(deg%2==1)break;

System.out.println("홀수만 입력해야 합니다.");

}catch(InputMismatchException e){

System.out.println("숫자만 입력해야 합니다.");

}

}

                scan.close();

int array[][] = new int[deg][deg];

int row,col;

int cnt;

row=0;col=(deg/2);  //마방진을 시작할 위치 지정

for(cnt=1;cnt<=deg*deg;cnt++){

array[row][col]=cnt;

if(cnt%deg==0){

row++;

if(row==deg)row=0;

}else{

row--;col++;

if(row==-1)row=deg-1;

if(col==deg)col=0;

}

}

//출력

for(row=0;row<=deg-1;row++){

for(col=0;col<=deg-1;col++){

System.out.printf("%3d",array[row][col]);

}

System.out.println();

}

}

}


'JAVA > 알고리즘 예제' 카테고리의 다른 글

[JAVA] 버블 정렬(Bubble Sort)  (1) 2016.08.31
[JAVA] 선택 정렬(Selection Sort)  (1) 2016.08.31
[JAVA] 모래시계 찍기  (1) 2016.08.30
[JAVA] 다이아몬드 찍기  (1) 2016.08.30
[JAVA] 달팽이 로직  (2) 2016.08.29