Решение: Сумма чисел по условию
Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 3 и оканчивающихся на 8. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3 и оканчивающееся на 8.
Количество чисел не превышает 100. Введённые числа по модулю не превышают 300.
Программа должна вывести одно число: сумму чисел, кратных 3 и оканчивающихся на 8.
| Входные данные | Выходные данные |
|---|---|
| 3 18 25 48 | 66 |
Решение по шагам
4 шагаСчитываем количество чисел и заводим переменную для накопления суммы.
Для каждого числа проверяем, делится ли оно на 3 без остатка и оканчивается ли на 8.
$$x \bmod 3 = 0 \quad \text{и} \quad x \bmod 10 = 8$$Если обе проверки выполнены, прибавляем число к сумме.
$$s = s + x$$После обработки всей последовательности выводим накопленную сумму.
n = int(input())
s = 0
for _ in range(n):
x = int(input())
if x % 3 == 0 and x % 10 == 8:
s += x
print(s)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только кратность 3 или только последнюю цифру.
Используют деление вместо операции получения остатка от деления.
Выводят каждое подходящее число, а не их сумму.
Забывают инициализировать сумму нулём.