Advertisement
tsveten_kavrakov

Untitled

Jun 15th, 2020
1,168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.29 KB | None | 0 0
  1. package ivalin;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.  
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.         String strInput="";
  12.         // Това е карта, съдържа ключ от тип Srtring - числата от конбинацията , и стойност от типа Integer - брой повторения
  13.         HashMap<String,Integer> mapCombinations=new HashMap<>();
  14.        
  15.         while (!(strInput=scanner.nextLine()).equals("finish")) {
  16.             int[] inputCombination=new int[6];
  17.             inputCombination[0] = Integer.parseInt(strInput);
  18.             boolean isValid=true;
  19.             // прочитам 6 числа от конзолата
  20.             for (int i=1;i<6;i++){
  21.                 inputCombination[i]=Integer.parseInt(scanner.nextLine());
  22.                 if (inputCombination[i]<1 || inputCombination[i]>49){
  23.                     isValid=false;
  24.                     continue;
  25.                 }
  26.                 // проверявам дали числото се повтаря с някое от предходните и ако да , комбинацията е невалидна
  27.                 for(int j=0;j<i;j++){
  28.                     if(inputCombination[i]==inputCombination[j]){
  29.                         isValid=false;
  30.                         break;
  31.                     }
  32.                 }
  33.             }
  34.             if (isValid){
  35.                 // сортирам масива във възходящ ред, за да може да се сравнява със запазените до сега
  36.                 sortIntArray(inputCombination);
  37.                 // конвертирам int масива във стринг, съдържащ числата от комбинацията, разделени със запетая
  38.                 String strSortedCombination=Integer.toString(inputCombination[0]); // вземам първото число
  39.                 for (int i=1;i<6;i++){ // към него прилепям останалите , разделени със запетая
  40.                     strSortedCombination=strSortedCombination+","+inputCombination[i];
  41.                 }
  42.                 // ако комбинацията не е била въведена , записвам я в картата с брой повторения 0
  43.                  mapCombinations.putIfAbsent(strSortedCombination,0);
  44.                 // вземам броя повторения за тази комбинация и ги уевлиавам с 1
  45.                 int combinationCount=mapCombinations.get(strSortedCombination);
  46.                 combinationCount++;
  47.                 mapCombinations.replace(strSortedCombination,combinationCount);
  48.                 System.out.println(strSortedCombination);
  49.              }else{
  50.                 System.out.println("Невалидна комбинация");
  51.             }
  52.  
  53.         }
  54.  
  55.         //обхожда всички запазени комбинации в картата и извежда броя на повторенията
  56.         for (Map.Entry<String,Integer> e : mapCombinations.entrySet() ) {
  57.             System.out.printf("%s - брой повторения %d%n",e.getKey(),e.getValue());
  58.         }
  59.     }
  60.  
  61.     // процедура за сортиране на масив във възходящ ред по метода на 'балончетата'
  62.     // това е просто за информация , иначе има вграфени функции за сортиране , но за тях по-късно
  63.     public static void sortIntArray(int[] combination){
  64.         int n=combination.length;
  65.         boolean swapped;
  66.         do{
  67.             swapped=false;
  68.             for (int i=1;i<=n-1;i++){
  69.                 //проверява дали числото е по-голямо от следващото и ако да , им сменя местата
  70.                 if (combination[i-1]>combination[i]){
  71.                     int temp=combination[i];
  72.                     combination[i]=combination[i-1];
  73.                     combination[i-1]=temp;
  74.                     swapped=true;
  75.                 }
  76.             }
  77.             n=n-1;
  78.         }while(swapped);
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement