B1 Разбор демонстрационного варианта
Условие. У исполнителя Утроитель две команды, которым присвоены номера: 1. прибавь 1, 2. умножь на 3. Первая из них увеличивает число на экране на 1, вторая – утраивает его.Запишите порядок команд в программе преобразования числа 1 в число 22, содержащей не более 5 команд, указывая лишь номера команд. Если таких программ более одной, то запишите любую из них.
(Например, 21211 – это программа умножь на 3 прибавь 1 умножь на 3 прибавь 1 прибавь 1, которая преобразует число 1 в 14.)Решение: Число 22 Утроитель может получить единственным способом, прибавив единицу к 21. Поэтому последняя команда программы – 1. То есть наща программа выглядит так: хххх1 и после выполнения первых 4-х команд должно получиться число 21. Запишем это так: хххх<21>1. Здесь x может означать 1, 2 или 0 (отсутствие команды, если в программе меньше 5 команд). Число 21 Утроитель может получить двумя способами – утроив 7 (тогда программа выглядит так: ххх<7>21) или последовательно прибавив три единицы к 18. В последнем случае программа должна выглядеть так: х<18>1111, что невозможно. Итак, программа выглядит так: ххх<7>21. Число 7 Утроитель может получить единственным способом, прибавив единицу к 6, следовательно, третья от конца команда – 1, т.е. программа выглядит так: хх<6>121. Число 6 можно получить из числа 1 за 2 команды, причем единственным способом: 1) прибавь 1; 2) умножь на 3.Таким образом, нужная программа: 12121 Ответ: 12121 Проверка
Исходное число | Команда | Результат |
1 |
1 (прибавь 1) |
2 |
2 |
2 (умножь на 3) |
6 |
6 |
1 (прибавь 1) |
7 |
7 |
2 (умножь на 3) |
21 |
21 |
1 (прибавь 1) |
22 |
Замечание 1. Мы решали задачу «с конца». Это часто бывает полезно.
Замечание 2. Обратим внимание на два обстоятельства: 1) Команда «умножь на 3» сильнее меняет исходное число, чем команда «прибавь 1». 2) Далеко не любое число может быть результатом выполнения команды «умножь на 3». Поэтому, если число можно получить с помощью «сильной» операции умножь на 3, так и стоит поступать.
0 Comments
Оставьте коммент первым.