Тема 5. Простейшие исполнители и алгоритмы

5.04 Нестандартные задачи

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела простейшие исполнители и алгоритмы
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 41#30276Максимум баллов за задание: 1

У исполнителя Математик есть две команды:

1. Прибавить 3,

2. Умножить на 2.

Первая команда увеличивает число на 3, а вторая удваивает его.

Запишите порядок команд в программе преобразования числа 2 в число 52, содержащей не более 5 команд, указывая лишь номера команд. Если таких программ более одной, то запишите любую из них.

Показать ответ и решение
for i in range(32):  # При >= 32 уже 6 знаков  
    s = ’0’ * (5 - len(bin(i)[2::])) + bin(i)[2::]  # Добавление незначащих  
                                                    # нулей  
    summa = 2  
    for j in s:  
        if j == ’0’:  
            summa += 3  
        if j == ’1’:  
            summa *= 2  
    if summa == 52:  
        print(s, summa)

Ответ: 12122

Ошибка.
Попробуйте повторить позже

Задача 42#30277Максимум баллов за задание: 1

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

1. Вычти 2

2. Умножь на 3

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

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

Показать ответ и решение
for i in range(64):  # При >= 64 уже 7 знаков  
    s = ’0’ * (6 - len(bin(i)[2::])) + bin(i)[2::]  # Добавление незначащих  
                                                    # нулей  
    summa = 4  
    for j in s:  
        if j == ’0’:  
            summa -= 2  
        if j == ’1’:  
            summa *= 3  
    if summa == 304:  
        print(s, summa)

Ответ: 221221

Ошибка.
Попробуйте повторить позже

Задача 43#53275Максимум баллов за задание: 1

У исполнителя Составь_план_подготовки_в_закрытой_группе есть 2  команды:

1. Прибавить 2

2. Умножить на 2

Какое число будет выведено в результате работы программы 212122  при исходном числе 6  ?

 

(план подготовки и правда нужно составить, если еще не сделал этого)

Показать ответ и решение
def f(x, code):
    if code == ’1’:
        return x + 2
    if code == ’2’:
        return x * 2
n = 6
for c in ’212122’:
    n = f(n, c)
print(n)

Ответ: 120
Рулетка
Вы можете получить скидку в рулетке!