Advertisement
believe_me

Untitled

Oct 21st, 2021
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class lab22 {
  4.  
  5.     public static int inputNumber() {
  6.         Scanner scanner = new Scanner(System.in);
  7.         final int MAX_NUMBER = 100000000;
  8.         boolean isIncorrect;
  9.         int number;
  10.         number = 0;
  11.         System.out.printf("Введите натуральное число не большее, чем %,d \n", MAX_NUMBER);
  12.         do {
  13.             isIncorrect = false;
  14.             try {
  15.                 number = Integer.parseInt(scanner.nextLine());
  16.             } catch (Exception ex) {
  17.                 System.out.println("Число должно быть целым.");
  18.                 isIncorrect = true;
  19.             }
  20.             if (!isIncorrect && (number < 1 || number > MAX_NUMBER)) {
  21.                 System.out.printf("Число должно быть больше 0 и не больше, чем %,d \n", MAX_NUMBER);
  22.                 isIncorrect = true;
  23.             }
  24.         } while (isIncorrect);
  25.         scanner.close();
  26.         return number;
  27.     }
  28.  
  29.  
  30.     public static int searchMaxCountOfRepeats(String numberArray) {
  31.         int maxCountOfRepeats, counter;
  32.         maxCountOfRepeats = 0;
  33.         int endNumber;
  34.         endNumber = numberArray.length();
  35.         for (int i = 0; i < endNumber; i++) {
  36.             counter = 1;
  37.             for (int j = i + 1; j < endNumber; j++) {
  38.                 if (numberArray.charAt(i) == (numberArray.charAt(j)))
  39.                     counter++;
  40.                 if (counter > maxCountOfRepeats)
  41.                     maxCountOfRepeats = counter;
  42.             }
  43.         }
  44.         return maxCountOfRepeats;
  45.     }
  46.  
  47.     public static void allSolutions(String numberArray, int maxCountOfRepeats) {
  48.         int counter;
  49.         int endNumber;
  50.         endNumber = numberArray.length();
  51.         for (int i = 0; i < endNumber; i++) {
  52.             counter = 1;
  53.             for (int j = i + 1; j < endNumber; j++) {
  54.                 if (numberArray.charAt(i) == numberArray.charAt(j)) {
  55.                     counter++;
  56.                     if (counter == maxCountOfRepeats)
  57.                         System.out.print(numberArray.charAt(i) + "; ");
  58.                 }
  59.             }
  60.         }
  61.     }
  62.  
  63.     public static void printResult(String numberArray, int maxCountOfRepeats) {
  64.         System.out.println("Самая часто встречающаяся цифра/цифры: ");
  65.         if (maxCountOfRepeats == 1)
  66.             System.out.println("Такой цифры нет.");
  67.         if (maxCountOfRepeats == 0)
  68.             System.out.println(numberArray);
  69.         else
  70.             allSolutions(numberArray, maxCountOfRepeats);
  71.     }
  72.  
  73.  
  74.     public static void main(String[] args) {
  75.         int maxCountOfRepeats;
  76.         String numberArray;
  77.         System.out.println("Программа позволяет узнать, какая цифра в данном числе встречается чаще всего.");
  78.         numberArray = Integer.toString(inputNumber());
  79.         maxCountOfRepeats = searchMaxCountOfRepeats(numberArray);
  80.         printResult(numberArray, maxCountOfRepeats);
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement