마방진(magic square)

전.java / / 2021. 1. 28. 14:42
728x90
public class ExerciseCh2_8 {
	public static void main(String[] args) throws java.io.IOException{
		int n = System.in.read() - '0';
		int [][] matrix = new int [n][n];
		int number, row, col, row_b, col_b;
		
		for(row=0; row<n; row++)
			for(col=0; col<n;col++)
				matrix[row][col] = 0;
		
		// 값 초기화
		row = 0;
		col = n/2;
		number = 1;
		matrix[row][col] = number; //[0][1]에 1넣음, [0][2]에 1넣음
		
		while(number<=n*n) {
			matrix[row][col] = number;
			
			row_b = row;
			col_b = col;
			col++;
			row--;
			
			if(row < 0) //row가 -1
				row = row % n + n;
			if(col > n-1) //col이 n
				col = col % n;
			if(matrix[row][col]!=0) //이미 숫자가 있으면 밑에다 적음
			{
				row = row_b+1;
				col = col_b;
			}
			number++;
		}
		for(row=0; row<n; row++)
		{
			for(col=0; col<n;col++)
				System.out.print(matrix[row][col]);
			System.out.println();
		}
	}

}

반응형

'전.java' 카테고리의 다른 글

산술식  (0) 2021.01.29
16진수를 10진수로 변환  (0) 2021.01.28
행렬의 행과 열을 바꾸는 메소드 transpose  (0) 2021.01.28
예외 발생 (NullPointerException)  (0) 2021.01.28
정수, 실수 나눗셈  (0) 2021.01.28
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기