desislava_topuzakova

03. Diagonal Difference

Jan 15th, 2022
703
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package MultidimensionalArrays_02;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class DiagonalDifference_03 {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         int n = Integer.parseInt(scanner.nextLine());
  9.         int[][] matrix = new int[n][n]; //квадратна матрица
  10.  
  11.         //1. напълваме матрицата
  12.         fillMatrix(matrix, scanner);
  13.         //2. сума от главния диагонал
  14.         int sumPrimary = getSumPrimaryDiagonal(matrix);
  15.         //3. сума от второстепенния диагонал
  16.         int sumSecondary = getSumSecondaryDiagonal(matrix);
  17.         //4. абс. стойност на разликата между сбора от диагоналите
  18.         System.out.println(Math.abs(sumPrimary - sumSecondary));
  19.     }
  20.  
  21.     private static int getSumSecondaryDiagonal(int[][] matrix) {
  22.         //всички елементи -> сумираме само тези, които се намират на второстепенния диагонал
  23.         int sum = 0; //сума от елементите на второстепенния диагонал
  24.         for (int row = 0; row < matrix.length; row++) {
  25.             for (int col = 0; col < matrix.length; col++) {
  26.                 int currentElement = matrix[row][col];
  27.                 //ако е на второстепенния диагонал
  28.                 if (col == matrix.length - row - 1) {
  29.                     sum += currentElement;
  30.                 }
  31.             }
  32.         }
  33.         return sum;
  34.     }
  35.  
  36.     private static int getSumPrimaryDiagonal(int[][] matrix) {
  37.         //всички елементи -> сумираме само тези, които се намират на главния диагонал
  38.         int sum = 0; //сума на елементите от главния диагонал
  39.         for (int row = 0; row < matrix.length; row++) {
  40.             for (int col = 0; col < matrix.length; col++) {
  41.                 int currentElement = matrix[row][col];
  42.                 //само ако е на главния диагонал
  43.                 if (row == col) {
  44.                     sum += currentElement;
  45.                 }
  46.             }
  47.         }
  48.         return sum;
  49.     }
  50.  
  51.     private static void fillMatrix(int[][] matrix, Scanner scanner) {
  52.         for (int row = 0; row < matrix.length; row++) {
  53.             for (int col = 0; col < matrix.length; col++) {
  54.                 matrix[row][col] = scanner.nextInt();
  55.             }
  56.         }
  57.     }
  58. }
RAW Paste Data