Нам нужно получить число 88, исходя из числа 7, используя команды «прибавь 5» (1) и «умножь на 2» (2). Алгоритм должен быть не более 5 команд.
Будем действовать от большего к меньшему, пытаясь «отменить» последнюю операцию, чтобы понять, какое число должно было быть до нее. Но так как команды только увеличивают число, будем работать от 7 к 88.
Начнем с 7:
Этот алгоритм (12121) дает 63. Попробуем другую комбинацию.
Можно заметить, что 88 делится на 2, и 88/2 = 44. Если мы сможем получить 44, то одним умножением на 2 получим 88.
Попробуем получить 44:
Этот путь тоже не дает 44.
Попробуем так: 88 = 44 * 2. Если мы получим 44, то сможем умножить на 2. А как получить 44? 44 = 22 * 2. Если мы сможем получить 22, то сможем умножить на 2, а потом еще раз на 2.
Начнем с 7. Нам нужно получить 22.
Отлично, получили 22 за 3 команды (111).
Теперь, чтобы получить 88, нам нужно дважды умножить на 2:
Весь алгоритм: 11122. Это 5 команд. Получаем из 7:
Ответ: 11122