Задание 5. Информатика. ЕГЭ. Поляков-1715
- Просмотры: 76
- Изменено: 21 ноября 2024
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
- Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
- На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([800; \, 900]\), в результате обработки которых на экране автомата появится число \(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;
vector<int> N;
N.push_back(8);
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 == 30 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: \(9\)