Решение: Максимальное значение переменной
Определите, при каком наибольшем введённом значении переменной $s$ программа выведет число 128. Для Вашего удобства программа представлена на четырёх языках программирования.
1s = int(input()) 2n = 1024 3while s >= 5: 4 s = s - 5 5 n = n // 2 6print(n)
Решение по шагам
4 шагаНа каждой итерации цикла значение $n$ целочисленно делится на 2. Нужно определить число итераций, после которых из 1024 получится 128.
$$1024 \mathbin{//} 2^k = 128$$Решаем уравнение: после трёх итераций значение $n$ равно 128.
$$1024 \mathbin{//} 2^3 = 128$$Чтобы цикл выполнился три раза, исходное значение $s$ должно удовлетворять условиям: $s \ge 15$, чтобы трижды пройти проверку, и $s - 15 < 5$, чтобы четвёртая итерация не началась. Следовательно, $15 \le s \le 19$.
Наибольшее подходящее значение переменной $s$ равно 19.
Где здесь ошибаются
Забывают, что проверка условия выполняется перед каждой итерацией.
Берут значение 20, хотя при нём цикл выполнится четыре раза и программа выведет 64.
Не учитывают целочисленное деление значения $n$ на 2.