Решение: Подсчёт однозначных чисел
Напишите программу, которая в последовательности натуральных чисел определяет количество однозначных чисел, кратных 3. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число: количество однозначных чисел, кратных 3.
| Входные данные | Выходные данные |
|---|---|
| 121 9 4 0 | 1 |
Решение по шагам
5 шаговСоздаём счётчик количества подходящих чисел и считываем числа по одному.
$$count = 0$$Если введено число 0, последовательность заканчивается, поэтому цикл прерывается. Ноль не проверяется как элемент последовательности.
$$n = 0 \Rightarrow \text{остановка}$$Натуральное число является однозначным, если оно меньше 10. Число кратно 3, если остаток от деления на 3 равен нулю.
$$n < 10 \land n \bmod 3 = 0$$При выполнении обоих условий увеличиваем счётчик и после завершения ввода выводим его значение.
$$count := count + 1$$Один из корректных вариантов программы на Python:
count = 0
while True:
n = int(input())
if n == 0:
break
if n < 10 and n % 3 == 0:
count += 1
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают число 0, хотя оно является только признаком окончания ввода.
Проверяют только кратность 3 и не проверяют, что число однозначное.
Используют условие n <= 10 вместо n < 10.
Забывают увеличить счётчик при выполнении обоих условий.
Считывают фиксированное количество чисел, хотя длина последовательности неизвестна.