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