Advertisement
Guest User

Maximal Sum

a guest
May 20th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.79 KB | None | 0 0
  1. package java_matrix_exercises;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Maximal_Sum {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         String[] input = scanner.nextLine().split("\\s+"); //взимаме входа като масив
  10.  
  11.         int rows = Integer.parseInt(input[0]); // правим редове от входа
  12.         int cols = Integer.parseInt(input[1]); // правим колони от входа
  13.  
  14.  
  15.         int[][] matrixResult = fillMatrix(rows, cols, scanner); // правим матрица с с редове и колони и която е в отделен метод за напълване
  16.  
  17.  
  18.         int maxSum = Integer.MIN_VALUE; // допълнителна променлива която да пази краен резултат
  19.  
  20.  
  21.         for (int row = 0; row < matrixResult.length - 2; row++) {
  22.             for (int col = 0; col < matrixResult[row].length - 2; col++) {
  23.                 int result = (matrixResult[row][col]) + (matrixResult[row][col + 1]) + (matrixResult[row][col + 2]) +
  24.                         (matrixResult[row + 1][col]) + (matrixResult[row + 1][col + 1]) + (matrixResult[row + 1][col + 2]) +
  25.                         (matrixResult[row + 2][col]) + (matrixResult[row + 2][col + 1]) + (matrixResult[row + 2][col + 2]);
  26.  
  27.                 if (result > maxSum) {
  28.                     maxSum = result;
  29.                 }
  30.  
  31.             }
  32.  
  33.         }
  34.  
  35.         System.out.println("Sum = " + maxSum); // принтираме
  36.         printMatrix(matrixResult); // принтираме с метод
  37.  
  38.     }
  39.  
  40.     private static int[][] fillMatrix(int rows, int cols, Scanner scanner) {// метод с който пълним матрицата
  41.         int[][] matrix = new int[rows][cols]; // взимаме входните данни
  42.         for (int i = 0; i < matrix.length; i++) { // обикаляме по редовете
  43.             String[] result = scanner.nextLine().split("\\s+"); // запазваме данните в масив
  44.             for (int j = 0; j < matrix[i].length; j++) { // обикаляме колоните
  45.                 matrix[i][j] = Integer.parseInt(result[j]); // запазваме общият резултат
  46.  
  47.             }
  48.  
  49.         }
  50.         return matrix; // връщаме резултата
  51.     }
  52.  
  53.     private static void printMatrix(int[][] matrix) { // принтираме резултата
  54.         for (int[] aMatrix : matrix) { // обикаляме редовете
  55.             for (int anAMatrix : aMatrix) { // обикаляме колоните
  56.                 System.out.print(anAMatrix + " "); // принтираме резултата
  57.             }
  58.             System.out.println();// празен нов ред
  59.         }
  60.  
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement