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

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

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

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

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

Чему равно наименьшее возможное трёхзначное число \(N\), в результате обработки которого на экране автомата появится число \(60\)?

Решение:

C++


#include<iostream>
#include<algorithm>

using namespace std;

int32_t main() {

    for(int N = 100; N < 1000; N++) {
        int min_n, max_n;
        int nums[3] = {N % 10, N / 10 % 10, N / 100};

        sort(nums, nums+3);

        max_n = nums[2] * 10 + nums[1];
        if(nums[0])
           min_n = nums[0] * 10 + nums[1];
        else if (nums[1])
           min_n = nums[1] * 10;
        else
           min_n = nums[2] * 10;

        if (max_n - min_n == 60) {
            cout << N << '\n';
            break;
        }

    }
}

Ответ: \(117\)