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