Шешімі: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 1. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример: для последовательности из пяти чисел $481$, $553$, $889$, $3025$, $4121$ искомых элементов три.
Шешім по шагам
4 қадамЧетырёхзначная запись в восьмеричной системе начинается с числа $8^3 = 512$ и заканчивается числом $8^4 - 1 = 4095$.
$$512 \leq x \leq 4095$$Последняя цифра восьмеричной записи равна остатку от деления исходного числа на 8. Поэтому запись оканчивается цифрой 1, если остаток равен 1.
$$x \bmod 8 = 1$$Последовательно считываем все элементы и увеличиваем счётчик, если выполнены оба условия.
$$if 512 \leq x \leq 4095 and x \% 8 == 1$$После обработки всей последовательности выводим значение счётчика.
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 512 <= x <= 4095 and x % 8 == 1:
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют последнюю десятичную цифру числа вместо последней цифры его восьмеричной жазбалар.
Используют границы диапазона для пятизначных или трёхзначных восьмеричных чисел.
Забывают обработать все N элементов последовательности.
Выводят сами подходящие числа вместо их количества.