[Java 예제] 홀수 마방진(a magic square of odd order)
2017. 2. 11. 22:52ㆍJava
자바로 콘솔에 홀수 마방진을 출력해보자
간단하게 구현하기 위해 조건이 많은 홀수 마방진 소스다.
시작(1)은 첫 번째 줄 중앙부터 시작하도록 하였다.
1부터 시작해 10시 방향(↖)으로 2차원 배열을 채워나간다.
향상된 for문과 2차원 배열을 익히기 좋은 예제다.
마방진은 짝수와 홀수의 풀이법이 다르므로 짝수 마방진은 다음 기회에...
public class MagicSquare { public void drawMagicSquare(int size) { // Parameter: 마방진의 크기 int[][] ms = new int[size][size]; int center = size / 2; int x = 0; int y = center; ms[x][y] = 1; if((size % 2) == 1) { for(int num = 2; num < size*size + 1; num++) { x -= 1; y -= 1; if(x < 0) { if(y < 0) { x += 2; y += 1; } else { x += size; } } else { if(y < 0) { y += size; } else { if(ms[x][y] != 0) { x += 2; y += 1; } } } ms[x][y] = num; } for(int[] i : ms) { for(int j : i) { System.out.print(j + "\t"); } System.out.println(); } } else { System.out.println("홀수만 입력하시오."); } } }
'Java' 카테고리의 다른 글
[Spring] Migrating from HttpClient 4 to HttpClient 5 (for self-signed certificates) (0) | 2024.12.04 |
---|---|
[Java] 데이터베이스 연동하기 (0) | 2017.02.23 |
[Java 예제] 채팅(chatting) (2) | 2017.02.22 |
[Java 예제] 로또(a lottery) (0) | 2017.02.13 |
[Java 예제] 다이아몬드(a diamond) (0) | 2017.02.11 |