/
EugenyCh7
/
JavaAndScalaLessons
Обзор
Документация
Войти
/
EugenyCh7
/
JavaAndScalaLessons
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
JavaTest/src/ch1/ex14/Main.java
66 строк
2 KB
Eugeny Chekmarev
IDEA update
15 июн 2021, 21:11
15 июн 2021, 21:11
47fadf9
Код
Авторство
О чём код?
package ch1.ex14; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); ArrayList<ArrayList<Integer>> matrix = new ArrayList<>(); int side = 0; int row = 0; String input; do { input = in.nextLine(); String[] subs = input.trim().split("\\s+"); ArrayList<Integer> line = new ArrayList<>(); for (String sub : subs) { line.add(Integer.parseInt(sub)); } matrix.add(line); if (side == 0) side = line.size(); else if (side != line.size()) { System.out.println("Bad matrix"); System.exit(-1); } } while (++row < side); System.out.println("Good matrix"); boolean magicDiagonal; boolean magicRows = true; boolean magicColumns = true; // Diagonals int magicNumber = 0; for (int i = 0; i < side; i++) magicNumber += matrix.get(i).get(i); int nextNumber = 0; for (int i = 0; i < side; i++) nextNumber += matrix.get(i).get(side - i - 1); magicDiagonal = magicNumber == nextNumber; // Rows for (int y = 0; y < side; y++) { nextNumber = 0; for (int x = 0; x < side; x++) nextNumber += matrix.get(y).get(x); if (nextNumber != magicNumber) { magicRows = false; break; } } // Columns for (int x = 0; x < side; x++) { nextNumber = 0; for (int y = 0; y < side; y++) nextNumber += matrix.get(y).get(x); if (nextNumber != magicNumber) { magicColumns = false; break; } } System.out.printf("Magic diagonals : %B\n", magicDiagonal); System.out.printf("Magic rows : %B\n", magicRows); System.out.printf("Magic columns : %B\n", magicColumns); System.out.printf("Magic : %B\n", magicDiagonal && magicRows && magicColumns); } }