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

Просмотры: 106
Изменено: 25 ноября 2024

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

  1. Перемножаются первая и вторая, а также вторая и третья цифры.
  2. Полученные два числа записываются друг за другом в порядке неубывания без разделителей.

Пример. Исходное число: \(631\). Произведение: \(6\cdot 3 = 18\); \(3 \cdot 1 = 3\). Результат: \(318\). Укажите наибольшее число, при обработке которого автомат выдаёт результат \(621\).

Решение:

C++


#include<iostream>
#include<string>

using namespace std;

int32_t main() {

    for (int N = 999; N > 99; N--) {
        string s, ans;
        int p0, p1;

        s = to_string(N);
        p0 = (s[0] - '0') * (s[1] - '0');
        p1 = (s[1] - '0') * (s[2] - '0');

        ans = (p0 < p1) ? to_string(p0) + to_string(p1) : to_string(p1) + to_string(p0);

        if (stoi(ans) == 621) {
            cout << N << '\n';
            break;
        }
    }
}

Ответ: \(732\)