16

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

ОГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИB1D013Развёрнутое решение≈ 10 минутРазбор в 5 шагов
Условие

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

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

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

Пример работы программы:
Входные данные:
481
553
889
3025
4121
0

Выходные данные:
3

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

5 шагов
1

Четырёхзначное число в восьмеричной системе имеет первую цифру от 1 до 7, поэтому его значение находится в диапазоне от $8^3 = 512$ до $8^4 - 1 = 4095$.

2

Последняя цифра записи числа в восьмеричной системе равна остатку от деления этого числа на 8. Поэтому для окончания на цифру 1 необходимо условие $n \bmod 8 = 1$.

3

Считываем числа в цикле до появления 0. Ноль не обрабатываем и не учитываем.

4

Если число удовлетворяет обоим условиям, увеличиваем значение счётчика и после завершения ввода выводим счётчик.

Пример программы на Python:

$$count = 0\nwhile True:\n n = int(input())\n if n == 0:\n break\n if 512 <= n <= 4095 and n % 8 == 1:\n count += 1\nprint(count)$$
Ответ

На Python: count = 0; считывать числа до 0; при выполнении условий 512 ≤ n ≤ 4095 и n % 8 = 1 увеличивать count; вывести count.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

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

Проверяют количество цифр в десятичной записи вместо количества цифр в восьмеричной.

Используют диапазон от 512 до 4096 включительно; число 4096 уже имеет пятизначную восьмеричную запись.

Проверяют остаток от деления на 10 вместо остатка от деления на 8.

Учитывают число 0 как элемент последовательности.

Забывают вывести только одно итоговое число.

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

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

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

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