Задание 5. Информатика. ЕГЭ. Поляков-1717

Просмотры: 108
Изменено: 24 ноября 2024

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

  1. Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
  2. На экран выводится разность полученных двузначных чисел.

Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).

Чему равно количество чисел \(N\) на отрезке \([700; \, 800]\), в результате обработки которых на экране автомата появится число \(80\)?

Решение:

C++


#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int32_t main()
{
    int q = 0;

    for(int j = 0; j < 10; j++)
       for(int k = 0; k < 10; k++) {
              int min_n, max_n;
              vector<int> N;

              N.push_back(7);
              N.push_back(j);
              N.push_back(k);

              sort(begin(N), end(N));
              max_n = N[2] * 10 + N[1];
              if (N[0])
                 min_n = N[0] * 10 + N[1];
              else if (N[1])
                 min_n = N[1] * 10;
              else 
                 min_n = N[2] * 10;


              q += max_n - min_n == 80 ? 1 : 0;
    }
    cout << q << '\n';

}

Ответ: \(2\)