Привет! Давай разберёмся с задачей. Нам нужно минимальное количество шагов, чтобы получить число 51 из 1, выполняя операции: прибавить 1 или удвоить число.
Начнем с 1 и попробуем дойти до 51:
- 1 удваиваем → 2
- 2 удваиваем → 4
- 4 удваиваем → 8
- 8 удваиваем → 16
- 16 удваиваем → 32
- 32 удваиваем → 64 (превышаем 51)
Вместо шестого шага попробуем иначе:
- 32 прибавляем 1 → 33
- 33 удваиваем → 66 (ещё больше)
Тогда:
- 32 прибавляем 1 → 33
- 33 прибавляем 1 → 34
- 34 удваиваем → 68
Или:
- 32 удваиваем → 64 (превышаем)
- Пробуем иначе:
После 5 шагов (32) прибавляем:
- 33
- 34
- 35 удваиваем → 70
Хотя:
Может быть только:
(32) + 1 = 33
33 + 1 = 34
34 + 1 = 35
35 + 1 = 36
36 удваиваем → 72
Пробуем иначе:
Тогда, изначально увеличиваем не добавляя, удваивая по возможности:
Напоследок:
- 1 удвоить → 2
- 2 удвоить → 4
- 4 удвоить → 8
- 8 удвоить → 16
- 16 прибавить 1 → 17
- 17 удвоить → 34
- 35 добавляем 1 → 51
Такой алгоритм делает 7 шагов.
Ответ: 7.
