Решение: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 2. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Решение по шагам
4 шагаЧетырёхзначная запись в восьмеричной системе начинается с разряда $8^3$, поэтому число должно удовлетворять условию $8^3 \leq x < 8^4$, то есть $512 \leq x < 4096$.
$$8^3 \leq x < 8^4$$Последняя цифра записи числа в системе счисления с основанием 8 равна остатку от деления числа на 8. Поэтому последняя цифра равна 2 при условии $x \bmod 8 = 2$.
$$x \bmod 8 = 2$$Последовательно считываем все $N$ чисел и увеличиваем счётчик, если выполнены оба условия.
$$if 512 <= x < 4096 and x % 8 == 2: count += 1$$После обработки всей последовательности выводим значение счётчика.
Пример программы на Python:
N = int(input())
count = 0
for _ in range(N):
x = int(input())
if 512 <= x < 4096 and x % 8 == 2:
count += 1
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют диапазон десятичных чисел, соответствующий не четырём, а другому количеству восьмеричных цифр.
Используют условие x % 10 == 2 вместо x % 8 == 2.
Забывают обработать все N элементов последовательности.
Выводят сами подходящие числа вместо их количества.