Advertisement
believe_me

Untitled

Oct 27th, 2021
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 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.printf("Нужно ввести натуральное число, не большее, чем %,d \n", MAX_NUMBER);
  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(int number) {
  31.         int maxCountOfRepeats, counter, previous, singleNumber, newNumber;
  32.         maxCountOfRepeats = 0;
  33.         while (number > 0) {
  34.             counter = 1;
  35.             singleNumber = number % 10;
  36.             previous = singleNumber;
  37.             number = number / 10;
  38.             newNumber = number;
  39.             while (newNumber > 0)
  40.             {
  41.                 singleNumber = newNumber % 10;
  42.                 newNumber = newNumber / 10;
  43.                 if (previous == singleNumber)
  44.                     counter++;
  45.                 if (counter > maxCountOfRepeats)
  46.                     maxCountOfRepeats = counter;
  47.             }
  48.         }
  49.         return maxCountOfRepeats;
  50.     }
  51.  
  52.     public static void allSolutions(int number, int maxCountOfRepeats) {
  53.         int counter, previous, singleNumber, newNumber;
  54.         while (number > 0) {
  55.             counter = 1;
  56.             singleNumber = number % 10;
  57.             previous = singleNumber;
  58.             number = number / 10;
  59.             newNumber = number;
  60.             while (newNumber > 0) {
  61.                 singleNumber = newNumber % 10;
  62.                 newNumber = newNumber / 10;
  63.                 if (previous == singleNumber) {
  64.                     counter++;
  65.                     if (counter == maxCountOfRepeats)
  66.                         System.out.print(previous + " ");
  67.                 }
  68.             }
  69.         }
  70.     }
  71.  
  72.     public static void printResult(int number, int maxCountOfRepeats) {
  73.         System.out.println("Самая часто встречающаяся цифра/цифры: ");
  74.         if (maxCountOfRepeats == 1)
  75.             System.out.println("Такой цифры нет.");
  76.         if (maxCountOfRepeats == 0)
  77.             System.out.println(number);
  78.         else
  79.             allSolutions(number, maxCountOfRepeats);
  80.     }
  81.  
  82.  
  83.     public static void main(String[] args) {
  84.         int maxCountOfRepeats, number;
  85.         System.out.println("Программа позволяет узнать, какая цифра в данном числе встречается чаще всего.");
  86.         number = inputNumber();
  87.         maxCountOfRepeats = searchMaxCountOfRepeats(number);
  88.         printResult(number, maxCountOfRepeats);
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement