Matt23

Sums

Mar 12th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6.  
  7. public class Main
  8. {
  9.     public static void main(String[] args) throws IOException
  10.     {
  11.         FileReader file;
  12.         BufferedReader reader;
  13.         String line;
  14.         ArrayList<Integer> numbers = new ArrayList<>();
  15.  
  16.         //files with data
  17.         String[] fileNames = new String[] {"dane5-1.txt", "dane5-2.txt", "dane5-3.txt"};
  18.         for (String name : fileNames)
  19.         {
  20.             //load single file
  21.             file = new FileReader("/path/to/file/" + name);
  22.             reader = new BufferedReader(file);
  23.  
  24.             line = reader.readLine();
  25.             while (line != null)
  26.             {
  27.                 //append all numbers in file to an ArrayList
  28.                 numbers.add(Integer.parseInt(line.trim()));
  29.                 line = reader.readLine();
  30.             }
  31.  
  32.             System.out.println("Największa suma w pliku " + name + " jest równa " + getBestSum(numbers)); //call a function with ArrayList as parameter
  33.             numbers.clear();
  34.         }
  35.     }
  36.  
  37.     public static int getBestSum(ArrayList<Integer> numbers)
  38.     {
  39.         ArrayList<Integer> sums = new ArrayList<>(); //storage for all sums
  40.         int sum = 0;
  41.  
  42.         for (int i = 0; i < numbers.size(); i++) //left index
  43.         {
  44.             for (int j = numbers.size() - 1; j >= i; j--)  //right index
  45.             {
  46.                 for (int k = j; k >= i; k--)  //addition numbers in a range from right index to left index
  47.                 {
  48.                     sum += numbers.get(k);
  49. //                    System.out.print((numbers.get(k)) > 0 ? "+" + numbers.get(k) : numbers.get(k));
  50.                 }
  51. //                System.out.print("=" + sum+ '\n');
  52.                 sums.add(sum); //append sum to an array
  53.                 sum = 0; //reset sum variable
  54.             }
  55.         }
  56.  
  57.         return Collections.max(sums);
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment