У исполнителя Вычислитель две команды, которым присвоены номера: 1) прибавь 1,
2) умножь на 2.
Первая из них увеличивает число на экране на 1, вторая — увеличивает в 2 раза.
Исполнитель работает только с натуральными числами.
Был составлен алгоритм 12212. Определите, могут ли приведенные числа быть результатом работы исполнителя.
Например, число 18 может быть получено по этому алгоритму из числа 1.
Распределите числа по группам: числа, которые могут быть результатом действия алгоритма и числа, которые невозможно получить таким ни из какого исходного числа.
Допустимые выходные данные:
Недопустимые выходные данные:
42 26 50 82 20 28 40 101
Допустимые входные данные: 42, 26, 50, 82
Недопустимые входные данные: 20, 28, 40, 101
Объяснение:
Идем от обратного. Перепишем алгоритм с последней цифры до первой: 21221 и командам присвоим обратные действия, то есть команда 1) станет "отними 1", а команда 2) "раздели на 2"
Проверим каждое число получившимся алгоритмом, если на выходе получается натуральное число, считаем, что алгоритм для этого числа допустим.
Например, число 42.
42/2 = 21
21-1 = 20
20/2 = 10
10/2 = 5
5-1 = 4
4 - натуральное число, следовательно для числа 42 алгоритм допустим.
Пример недопустимого алгоритма на примере числа 20:
20/2 = 10
10-1 = 9
9/2 = 4,5 - недопустимо, так как это число не может получиться при умножении целого натурального числа на 2