Задача к ЕГЭ по информатике на тему «простейшие исполнители и алгоритмы» №1

У исполнителя АТЛАНТ две команды, которым присвоены номера:

  1. Вычти 2  ;
  2. Умножь на 3  .

Первая из них уменьшает число на экране на 2  , вторая – увеличивает его в три раза.

Запишите порядок команд в программе получения из числа 4  числа 50  , содержащей не более 6  команд, указывая лишь номера команд.

Решение кодом

for k1 in (’120’):
    for k2 in (’120’):
        for k3 in (’120’):
            for k4 in (’120’):
                for k5 in (’120’):
                    for k6 in (’120’):
                        s = k1 + k2 + k3 + k4 + k5 + k6
                        start = 4
                        for x in s:
                            if x == ’1’:
                                start -= 2
                            if x == ’2’:
                                start *= 3
                            else:
                                start += 0
                        if start == 50:
                            print(s)

Если бы вышли нули, мы бы их просто не записали в последовательность, так как они не несут в себе действия. Добавили их, чтобы учесть, что может быть меньше 6  команд.

Решение аналитически

Представим, что нам надо получить из 50  число 4  обратными командами, то есть прибавить 2  (1)  и поделить на        3  (2)  . Прибавляем к 50  число 2  два раза, получаем 54  , делим его на 3  , получаем 18  , еще раз делим на 3  , получаем 6  , делим на 3  , получаем 2  , прибавляем 2  , получаем 4  . Получается: 112221  . Эту последовательность надо развернуть, так как команды были обратные. Ответ: 122211  .

Ответ: 122211
Оцените статью
Я решу все!