Решение: Сумма кратных чисел
Напишите программу, которая в последовательности целых чисел вычисляет сумму всех чисел, которые кратны 4 или 9. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 — признак окончания ввода, не входит в последовательность. Количество чисел не превышает 20. Введённые числа по модулю не превышают 1500. Программа должна вывести одно число: сумму всех чисел, которые кратны 4 или 9.
Пример работы программы: при вводе чисел −16, 93, 90, 0 программа выводит 74.
Решение по шагам
5 шаговСоздадим переменную sum для накопления суммы подходящих чисел.
$$sum = 0$$Будем считывать очередное число. Если оно равно нулю, ввод завершается, так как ноль является признаком окончания последовательности.
$$if x == 0: break$$Для каждого ненулевого числа проверим, делится ли оно на 4 или на 9 без остатка. Отрицательные числа также корректно проверяются с помощью операции остатка.
$$x \% 4 == 0 \;\text{or}\; x \% 9 == 0$$Если условие выполнено, прибавим число к сумме и после завершения цикла выведем результат.
$$sum = sum + x$$Программа на Python:
$$summa = 0 while True: x = int(input()) if x == 0: break if x % 4 == 0 or x % 9 == 0: summa += x print(summa)$$summa = 0
while True:
x = int(input())
if x == 0:
break
if x % 4 == 0 or x % 9 == 0:
summa += x
print(summa)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают число 0 в сумме, хотя оно является только признаком окончания ввода.
Используют условие с and вместо or и пропускают числа, кратные только одному из двух чисел.
Проверяют делимость через обычное деление вместо остатка от деления.
Забывают вывести накопленную сумму после завершения цикла.