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

Просмотры: 8
Изменено: 16 сентября 2024

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

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

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

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

Решение:

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;
              int N[3] = {1, j, k};

              sort(N, N + 3);

              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 == 30 ? 1 : 0;
    }
    cout << q << '\n';

}

Ответ: \(7\)