Задача:
Даны натуральное число [latex]n[/latex], целочисленная квадратная матрица порядка [latex]n[/latex]. Получить [latex]{b}_{1}[/latex],…,[latex]{b}_{n},[/latex] где [latex]{b}_{i}[/latex] — это наименьшее из значений, элементов находящихся в начале [latex]i[/latex]-й строки матрицы до элемента, принадлежащего главной диагонали, включительно.
Тесты:
Вводимые данные | Предполагаемый вывод | Комментарий | |
4 | 4 3 2 1 | 4 3 2 1 | Тест пройден |
4 3 2 1 | |||
4 3 2 1 | |||
4 3 2 1 | |||
1 2 3 4 | 1 1 1 1 | Тест пройден | |
1 2 3 4 | |||
1 2 3 4 | |||
1 2 3 4 |
Решение:
Считываем матрицу и проходим в цикле по каждой строке ведя поиск минимального элемента (но есть одно «Но», поиск ведется под главной диагональю матрицы).
У всех элементов находящихся под главной диагональю матрицы, включительно, индекс строк больше или равен индексу столбцов заданной матрицы. Учтем это при составлении программы.
Осталось только написать код с учетом вышеперечисленных особенностей задачи.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import java.util.*; public class multi_arrays { public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Введите n: "); int n = in.nextInt(); //Объявление переменной, обозначающей размерность массива int[][] a = new int [n][n]; //Создание двумерного массива for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.print("Заполните массивы элементами: "); a[i][j] = in.nextInt(); } } for (int i = 0; i < n; i++) { int min = a[i][0]; for (int j = 0; i - j >= 0; j++) // критерий отбора элементов под главной диагональю { if (a[i][j] < min) { min = a[i][j]; } } System.out.println(min); } } } |
Версия программы на Ideone.com