Шешімі: Цикл с целочисленным делением
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для удобства программа представлена на пяти языках программирования.
1s = 100 2n = 1 3while s > 0: 4 s = s // 4 5 n = n * 2 6print(n)
Шешімін қадамдап көрсету
3 қадамВ начале работы программы $s = 100$, $n = 1$. На каждой итерации $s$ делится на $4$ нацело, а $n$ умножается на $2$.
$$s \leftarrow s // 4,\quad n \leftarrow 2n$$Последовательно получаем значения переменной $s$:
$$100 \to 25 \to 6 \to 1 \to 0$$До получения нуля цикл выполняется 4 раза. Поэтому значение переменной $n$ увеличивается в 4 раза по степени двойки.
$$n = 1 \cdot 2^4 = 16$$Где здесь ошибаются
Использовать обычное деление вместо целочисленного.
Остановить цикл после получения $s = 1$, не выполнив последнюю итерацию.
Посчитать количество итераций как 3 вместо 4.