Решение: Сумма однозначных чисел
Напишите программу, которая в последовательности натуральных чисел вычисляет сумму всех однозначных чисел, кратных 3. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести одно число: сумму всех однозначных чисел, кратных 3.
| Входные данные | Выходные данные |
|---|---|
| 6 6 17 18 0 | 12 |
Решение по шагам
5 шаговВведём переменную для суммы и изначально присвоим ей значение 0.
$$s = 0$$Будем последовательно считывать числа. Число 0 является признаком окончания ввода, поэтому его не обрабатываем.
$$while\ x \ne 0$$Число является однозначным, если оно меньше 10. Оно кратно 3, если остаток от деления на 3 равен 0.
$$x < 10 \land x \bmod 3 = 0$$Если оба условия выполнены, прибавим число к сумме. После окончания ввода выведем полученную сумму.
$$s = s + x$$Один из возможных вариантов программы на Python:
$$s = 0\nwhile\ True:\n x = int(input())\n if x == 0:\n break\n if x < 10 and x % 3 == 0:\n s += x\nprint(s)$$s = 0
while True:
x = int(input())
if x == 0:
break
if x < 10 and x % 3 == 0:
s += x
print(s)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают число 0 в обрабатываемую последовательность.
Проверяют только делимость на 3, но не проверяют, что число однозначное.
Используют условие x <= 10 вместо x < 10.
Не выводят итоговую сумму после завершения цикла.