마법 마법 광장 (문제 밸리, Java 언어 설명을 P2615 로스의 문제 해결)

질문 질문

P2615 주제 링크
그림 삽입 설명 여기
그림 삽입 설명 여기

분석

주 주제는 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());
        }
    }
}
게시 된 717 개 원래 기사 · 원 찬양 1513 ·은 69 + 조회수

추천

출처blog.csdn.net/weixin_43896318/article/details/104853121