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

Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:

1. умножь на 2

2. прибавь 2

Выполняя команду номер 1  , КВАДРАТОР умножает число на экране на 2  , а выполняя команду номер 2  , прибавляет к этому числу 2  . Напишите программу, содержащую не более 4  команд, которая из числа 3  , не проходя через числа 7  и 8  , получает число 40  . Укажите лишь номера команд.

for i in range(16):  # При >= 16 уже 5 знаков
 
    s = ’0’ * (4 — len(bin(i)[2::])) + bin(i)[2::]  # Добавление незначащих
 
                                                    # нулей
 
    flag = True  # Проверка на попадание на 7 или 8
 
    summa = 3
 
    for j in s:
 
        if j == ’0’:
 
            summa *= 2
 
        if j == ’1’:
 
            summa += 2
 
        if summa in [7, 8]:
 
            flag = False
 
    if flag and summa == 40:
 
        print(s)
 

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