Решение: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления трёхзначна и оканчивается на цифру 2. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Программа должна напечатать только одно число — количество искомых элементов.
Решение по шагам
4 шагаТрёхзначная запись в восьмеричной системе начинается с числа $8^2=64$ и заканчивается перед числом $8^3=512$. Поэтому должно выполняться условие $64 \leq n < 512$.
$$8^2 \leq n < 8^3$$Последняя цифра записи числа в восьмеричной системе определяется остатком от деления на 8. Для цифры 2 проверяем условие $n \bmod 8 = 2$.
$$n \bmod 8 = 2$$Считываем числа в цикле до появления нуля. Подходящие числа увеличивают значение счётчика.
После завершения ввода выводим единственное значение — количество найденных чисел.
$$print(count)$$Пример программы на Python:
count = 0
n = int(input())
while n != 0:
if 64 <= n < 512 and n % 8 == 2:
count += 1
n = int(input())
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют диапазон десятичных чисел от 100 до 999 вместо диапазона трёхзначных восьмеричных чисел от 64 до 511.
Используют деление на 10 вместо остатка от деления на 8.
Учитывают завершающий ноль как элемент последовательности.
Выводят дополнительные пояснения вместе с ответом.