Задача
В матрице [latex]A(n, m) [/latex] все ненулевые элементы заменить обратными по величине и противоположными по знаку.
Тесты
№ | n | m | Входная матрица | Выходная матрица |
1 | 3 | 3 | 6 -2 -1 0 0 4 11 2 -3 | -0.167 0.500 1.000 0.000 0.000 -0.250 -0.091 -0.500 0.333 |
2 | 3 | 4 | -3 -9 15 12 -31 -8 2 8 -1 2 -6 -8 | 0.333 0.111 -0.067 -0.083 0.032 0.125 -0.500 -0.125 1.000 -0.500 0.167 0.125 |
3 | 4 | 3 | 1 1 1 1 1 1 1 1 1 1 1 1 | -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 |
Решение
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
class FifthLab { public static void main (String[] args) { Scanner input = new Scanner(System.in); int n, m; n = input.nextInt(); m = input.nextInt(); double[][] A = new double[n][m]; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { A[i][j] = input.nextDouble(); } } for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if(A[i][j] != 0) { A[i][j] = -(1/A[i][j]); } } } for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { System.out.printf("%.3f ",A[i][j]); } System.out.println(); } } } |
Пояснения
Объявляем и инициализируем переменные n и m , которые являются размерами нашей матрицы [latex]A[/latex]. Объявляем нашу матрицу и создаем экземпляр с размерами [latex]n[/latex] x [latex]m[/latex]. Далее создаем цикл по i от 0 до [latex]n-1[/latex] в котором создаем вложенный цикл по j от 0 до [latex]m-1[/latex], и в нем поэлементно вводим значения матрицы. В следующем цикле снова создаем вложенный, в котором мы проходим по каждому элементу матрицы и проверяем не равен ли он нулю if(A[i][j] != 0) . Если условие выполняется, то мы заменяем элемент на обратный и меняем знак. В последнем цикле выводим полученную матрицу, элементы которой будут выводится с точностью до трех символов после запятой.