질문 질문
분석
주 주제는 N의 마술 사각형 홀수 (정말 짝수를 할 수 없다 측정), 감지 할 필요가 없습니다를해야한다는 말했다.
실제 시뮬레이션은지도, 라인에 지정된 이동 요구 사항입니다.
이 제목은 무서운 보였지만, 사실은, 엄격하게 자신의 디자인의 알고리즘을 필요로하지 않습니다, 라인에 쓰기 코드에 대한 지침을 따르십시오.
AC 코드 (자바 기술 언어)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
scanner.close();
int[][] array = new int[num][num];
int last_x = 0, last_y = num/2;
//肯定是奇数
array[0][last_y] = 1;
for (int i = 2; i <= num*num; i++) {
if (last_x == 0 && last_y != num-1) {
last_x = num-1;
++last_y;
} else if (last_x != 0 && last_y == num-1) {
--last_x;
last_y = 0;
} else if (last_x == 0 && last_y == num-1) {
++last_x;
} else if (array[last_x-1][last_y+1] == 0) {
--last_x;
++last_y;
} else {
++last_x;
}
array[last_x][last_y] = i;
}
StringBuilder result;
for (int i = 0; i < num; i++) {
result = new StringBuilder();
for (int j = 0; j < num; j++) {
result.append(array[i][j]).append(" ");
}
System.out.println(result.toString().trim());
}
}
}