РУҚА
16

Ответ: Подсчёт восьмеричных чисел

ОГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИ78083DРазвёрнутое решение≈ 10 минут
Что должно получиться

count = 0
while True:
n = int(input())
if n == 0:
break
if 8**3 <= n < 8**4 and n % 8 == 0:
count += 1
print(count)

У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.

Условие

Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 0. В ответе запишите количество искомых элементов.

Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).

Программа должна напечатать только одно число — количество искомых элементов последовательности.

Пример работы программы: при вводе чисел 480, 552, 888, 3024, 4120, 0 программа должна вывести 3.

Открыть задачу и решить самому

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

Учитывают завершающий ноль как элемент последовательности.

Проверяют только делимость на 8, но не проверяют, что восьмеричная запись является четырёхзначной.

Используют границу $8^4$ как допустимое значение, хотя число $8^4$ уже имеет пять цифр в восьмеричной системе.

Проверяют диапазон от $8^2$ до $8^3 - 1$, соответствующий трёхзначным восьмеричным числам.

Откуда взялся этот ответРазбор разложен на 4 шага: видно каждое преобразование и где теряется балл.
Открыть решение

Ответ к заданию 16 ОГЭ, информатика

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

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