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