desislava_topuzakova

03. Diagonal Difference

Jan 15th, 2024
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. package javaAdv;
  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.  
  14. //2. сума от числата на главния диагонал
  15. int sumPrimaryDiagonal = getSumElementsOnPrimaryDiagonal(matrix);
  16.  
  17. //3. сума от числата на второстепенния диагонал
  18. int sumSecondaryDiagonal = getSumElementsOnSecondaryDiagonal(matrix);
  19.  
  20. //4. принтираме абс.стойност на разликата
  21. System.out.println(Math.abs(sumPrimaryDiagonal - sumSecondaryDiagonal));
  22. }
  23.  
  24. private static int getSumElementsOnSecondaryDiagonal(int[][] matrix) {
  25. int sum = 0; //сума от числата на второстепенния диагонал
  26. //всички елементи в матрицата -> сумирам само тези, които са на второстепенния дигонал
  27. // (колона = общ брой редове - ред - 1)
  28. // ред + колона = общ брой редове - 1
  29. for (int row = 0; row < matrix.length; row++) {
  30. for (int col = 0; col < matrix.length; col++) {
  31. int currentElement = matrix[row][col]; //текущия елемент
  32. //проверяваме дали е на второстепенния диагонал
  33. if (col == matrix.length - row - 1) {
  34. //елементът е на второстепенния диагонал
  35. sum += currentElement;
  36. }
  37. }
  38. }
  39. return sum;
  40. }
  41.  
  42. private static int getSumElementsOnPrimaryDiagonal(int[][] matrix) {
  43. int sum = 0; //сума от числата на главния диагонал
  44. //всички елементи в матрицата -> сумирам само тези, които са на главния дигонал (ред == колона)
  45. for (int row = 0; row < matrix.length; row++) {
  46. for (int col = 0; col < matrix.length; col++) {
  47. int currentElement = matrix[row][col]; //текущия елемент
  48. //проверяваме дали е на главния диагонал
  49. if (row == col) {
  50. //елементът е на главния диагонал
  51. sum += currentElement;
  52. }
  53. }
  54. }
  55. return sum;
  56. }
  57.  
  58. private static void fillMatrix(int[][] matrix, Scanner scanner) {
  59. int rows = matrix.length; //брой на редовете = брой на колони
  60. for (int row = 0; row < rows; row++) { //обхожда редовете
  61. for (int col = 0; col < rows; col++) { //обхожда колоните
  62. matrix[row][col] = scanner.nextInt();
  63. }
  64. }
  65. }
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment