РУҚА
6

Решение: Минимальное значение переменной

ЕГЭ · Информатика · Задание 6 · Основы программирования
ПовышеннаяФИПИD2E3CAКороткий ответ≈ 4 минутыРазбор в 4 шагаОтвет сверен с ключом
Условие

Определите, при каком наименьшем введённом значении переменной $s$ программа выведет число 8. Для Вашего удобства программа представлена на четырёх языках программирования.

Python
1s = int(input())
2s = (s - 21) // 10
3n = 1
4while s >= 0:
5    n = n * 2
6    s = s - n
7print(n)
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Обозначим через $s_0$ значение переменной после целочисленного деления. В начале цикла $n = 1$.

$$s_0 = (s - 21) // 10$$
2

На первой итерации переменная $n$ принимает значение 2, на второй — 4, на третьей — 8. Чтобы цикл выполнился три раза, перед третьей итерацией должно быть $s_0 - 2 - 4 \geq 0$.

$$s_0 \geq 6$$
3

После третьей итерации из $s_0$ вычитается 8. Чтобы четвёртая итерация не выполнялась, необходимо $s_0 - 2 - 4 - 8 < 0$, то есть $s_0 < 14$.

$$6 \leq s_0 < 14$$

Для наименьшего входного значения достаточно найти минимальное $s$, при котором $(s - 21) // 10 \geq 6$.

$$(s - 21) // 10 \geq 6 \Rightarrow s - 21 \geq 60 \Rightarrow s \geq 81$$
Ответ
81
81
так ответ выглядит в бланке

Где здесь ошибаются

Забывают, что значение $n$ изменяется до вычитания из переменной $s$.

Считают, что для вывода 8 цикл должен выполниться четыре раза.

Не учитывают целочисленное деление при преобразовании исходного значения $s$.

Закрепить приёмВ теме «Основы программирования» ещё 159 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 6 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 160 задач, и у каждой есть такой же разбор. Регистрация не нужна.