Advertisement
believe_me

Untitled

Oct 21st, 2021
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int inputNumber() {
  7.     const int MAX_NUMBER = 100000000;
  8.     bool isIncorrect;
  9.     int number;
  10.     string input = "";
  11.     printf("Введите натуральное число не большее, чем %d \n", MAX_NUMBER);
  12.     do {
  13.         isIncorrect = false;
  14.         getline(cin, input);
  15.         try {
  16.             number = stoi(input);
  17.         }
  18.         catch (invalid_argument ex) {
  19.             cout << "Нужно ввести число.\n";
  20.             isIncorrect = true;
  21.         }
  22.         catch (out_of_range ex) {
  23.             printf("Нужно ввести число, которое не больше, чем %d\n", MAX_NUMBER);
  24.             isIncorrect = true;
  25.         }
  26.         if (!isIncorrect && (number < 1 || number > MAX_NUMBER)) {
  27.             cout << "Число должно являться положительным и быть не больше " << MAX_NUMBER << "\n";
  28.             isIncorrect = true;
  29.         }
  30.     } while (isIncorrect);
  31.     return number;
  32. }
  33.  
  34.  
  35. int searchMaxCountOfRepeats(string numberArray) {
  36.     int maxCountOfRepeats, counter;
  37.     maxCountOfRepeats = 0;
  38.     int endNumber;
  39.     endNumber = numberArray.length();
  40.     for (int i = 0; i < endNumber; i++) {
  41.         counter = 1;
  42.         for (int j = i + 1; j < endNumber; j++) {
  43.             if (numberArray[i] == numberArray[j])
  44.                 counter++;
  45.             if (counter > maxCountOfRepeats)
  46.                 maxCountOfRepeats = counter;
  47.         }
  48.     }
  49.     return maxCountOfRepeats;
  50. }
  51.  
  52. void allSolutions(string numberArray, int maxCountOfRepeats) {
  53.     int counter;
  54.     int endNumber;
  55.     endNumber = numberArray.length();
  56.     for (int i = 0; i < endNumber; i++) {
  57.         counter = 1;
  58.         for (int j = i + 1; j < endNumber; j++) {
  59.             if (numberArray[i] == numberArray[j])
  60.             {
  61.                 counter++;
  62.                 if (counter == maxCountOfRepeats)
  63.                     cout << numberArray[i] << "; ";
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. void printResult(int maxCountOfRepeats, string numberArray)
  70. {
  71.     cout << "Самая часто встречающаяся цифра/цифры: ";
  72.     if (maxCountOfRepeats == 1)
  73.         cout << "Такой цифры нет";
  74.     if (maxCountOfRepeats == 0)
  75.         cout << numberArray;
  76.     else
  77.         allSolutions(numberArray, maxCountOfRepeats);
  78. }
  79.  
  80.  
  81. int main() {
  82.     setlocale(LC_ALL, "Russian");
  83.     int maxCountOfRepeats;
  84.     cout << "Программа позволяет узнать, какая цифра в данном числе встречается чаще всего.";
  85.     string numberArray = to_string(inputNumber());
  86.     maxCountOfRepeats = searchMaxCountOfRepeats(numberArray);
  87.     printResult(maxCountOfRepeats, numberArray);
  88.  
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement