Решение: Сумма чисел, кратных 6 или 11
Напишите программу, которая в последовательности целых чисел вычисляет сумму всех чисел, которые кратны 6 или 11. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 — признак окончания ввода, не входит в последовательность.
Количество чисел не превышает 100. Введённые числа по модулю не превышают 300.
Программа должна вывести одно число: сумму всех чисел, которые кратны 6 или 11.
Пример: при вводе чисел 12, 11, 8, 0 программа должна вывести 23.
Решение по шагам
6 шаговИнициализируем переменную для накопления суммы нулём.
$$s = 0$$В цикле считываем очередное целое число. Нулевое значение является признаком окончания ввода и не обрабатывается как элемент последовательности.
Для ненулевого числа проверяем, делится ли оно без остатка на 6 или на 11.
$$x \bmod 6 = 0 \;\lor\; x \bmod 11 = 0$$Если условие выполнено, прибавляем число к сумме. После завершения цикла выводим накопленную сумму.
Один из возможных вариантов программы на Python:
Код:
s = 0
while True:
x = int(input())
if x == 0:
break
if x % 6 == 0 or x % 11 == 0:
s += x
print(s)
Например:
s = 0
while True:
x = int(input())
if x == 0:
break
if x % 6 == 0 or x % 11 == 0:
s += x
print(s)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Добавляют в сумму нулевой признак окончания ввода.
Используют условие and вместо or.
Проверяют делимость только на 6 или только на 11.
Не завершают цикл после получения нуля.
Забывают вывести накопленную сумму после окончания цикла.