Шешімі: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления трёхзначна и оканчивается на цифру 0. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Количество введённых чисел не превышает 1000. Программа должна вывести только количество искомых элементов.
Шешім по шагам
4 қадамТрёхзначные числа в восьмеричной системе счисления имеют значения от $8^2 = 64$ до $8^3 - 1 = 511$.
Восьмеричная запись оканчивается цифрой 0 тогда и только тогда, когда число делится на 8 без остатка.
$$n \bmod 8 = 0$$Считываем числа до появления нуля. Сам ноль не обрабатываем. Если число находится в нужном диапазоне и делится на 8, увеличиваем счётчик.
После окончания ввода выводим значение счётчика. Один из возможных нұсқа программы:
$$count = 0 while True: n = int(input()) if n == 0: break if 64 <= n <= 511 and n % 8 == 0: count += 1 print(count)$$count = 0
while True:
n = int(input())
if n == 0:
break
if 64 <= n <= 511 and n % 8 == 0:
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют делимость на 10 вместо делимости на 8.
Используют диапазон десятичных трёхзначных чисел от 100 до 999.
Включают число 0 в обрабатываемую последовательность.
Проверяют только делимость на 8, но не проверяют, что восьмеричная жазба является трёхзначной.