This is an old revision of the document!


Algorithm

마방진 (Magic Square)

  • 홀수만 처리 가능!

int size = 5;

int[][] arr = new int[size][size];
		
int middle = size/2;

int i=0, j=middle;
for(int num=1 ; num<=size*size ; num++) {
	arr[i][j] = num;
	
	//행 감소
	i--;
	if(i < 0)
		i = size-1;
	
	//열 증가
	j = (++j)%size;
	//아래 표현과 같다.
	/*j++;
	if(j >= size)
		j = 0;*/

		//배수이면 행은 1 증가, 열은 그대로
	if(num%size == 0) {
		i = (i+2)%size;
		j--;
		if(j < 0)
			j = size-1;
	}
}

algorithm.1429361228.txt.gz · Last modified: 2021/02/07 03:15 (external edit)