Шешімі: Подсчёт двузначных чисел
Напишите программу, которая в последовательности натуральных чисел определяет количество двузначных чисел, кратных 8. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число: количество двузначных чисел, кратных 8.
Пример: при вводе чисел 8, 16, 77, 0 программа должна вывести 1.
Шешімін қадамдап көрсету
4 қадамВведём счётчик найденных чисел и будем считывать очередные значения до появления числа 0.
$$count = 0$$Число является двузначным, если оно находится в диапазоне от 10 до 99 включительно. Кратность 8 проверяется по нулевому остатку от деления.
$$10 \leq n \leq 99 \land n \bmod 8 = 0$$При выполнении обоих условий увеличиваем счётчик. Число 0 не обрабатываем как элемент последовательности.
Один из корректных нұсқа программы:
$$count = 0\nwhile True:\n n = int(input())\n if n == 0:\n break\n if 10 <= n <= 99 and n % 8 == 0:\n count += 1\nprint(count)$$count = 0
while True:
n = int(input())
if n == 0:
break
if 10 <= n <= 99 and n % 8 == 0:
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают число 0 в последовательности.
Проверяют только кратность 8, но не проверяют, что число двузначное.
Используют деление / вместо операции получения остатка %.
Забывают увеличить счётчик или вывести его после завершения цикла.