Решение: Четырёхзначные восьмеричные числа
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 4. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов.
Пример входных данных: $5, 484, 556, 892, 3028, 4124$. Пример выходных данных: $3$.
Решение по шагам
4 шагаСчитываем количество элементов последовательности и заводим счётчик подходящих чисел.
$$count = 0$$Для каждого числа получаем его запись в восьмеричной системе. Функция `oct(x)` возвращает строку с префиксом `0o`, поэтому первые два символа не учитываем.
$$s = oct(x)[2:]$$Проверяем, что длина восьмеричной записи равна 4, а последний символ равен 4. Если оба условия выполнены, увеличиваем счётчик.
$$len(s) = 4 \land s[-1] = \text{'4'}$$После обработки всех элементов выводим значение счётчика.
$$print(count)$$```python
n = int(input())
count = 0
for _ in range(n):
x = int(input())
s = oct(x)[2:]
if len(s) == 4 and s[-1] == '4':
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют количество цифр в десятичной записи вместо восьмеричной.
Забывают убрать префикс `0o`, который добавляет функция `oct()`.
Проверяют делимость числа на 4, хотя требуется последняя цифра именно восьмеричной записи.
Выводят подходящие числа, а не их количество.