Программа для обработки данных (задача №16 ОГЭ)
Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 3 и оканчивающихся на 8. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 3 и оканчивающихся на 8.
Пример работы программы:
Входные данные | Выходные данные |
23 | |
48 | |
12 | |
18 | |
34 | |
0 | 66 |
Шаг 1.
Начнём с простого — посчитаем сумму всех вводимых чисел:
КуМир
алг
нач
цел а=99999
цел сум=0
нц пока а<>0
ввод а
сум:=сум+а
кц
вывод сум
кон
Python
a=99999
sum=0
while a!=0:
a=int(input())
sum=sum+a
print(sum)
Проверим, что получилось:
Входные данные | Выходные данные |
23 | |
48 | |
12 | |
18 | |
34 | |
0 | 135 |
Сумма всех введенных чисел = 135
Шаг 2.
Теперь введем ограничение — будем считать только числа, кратные 3 (то есть остаток от деления числа на 3 должен быть равен нулю)
КуМир
алг
нач
цел а=99999
цел сум=0
нц пока а<>0
ввод а
если mod(а,3)=0
то
сум:=сум+а
всё
кц
вывод сум
кон
Python
a=99999
sum=0
while a!=0:
a=int(input())
if (a%3==0):
sum=sum+a
print(sum)
Проверим, что получилось:
Входные данные | Выходные данные |
23 | |
48 | |
12 | |
18 | |
34 | |
0 | 78 |
Сумма введенных чисел, кратных числу 3, равна 78
Шаг 3.
Теперь ищем ответ на вопрос задачи — сумму всех чисел, кратных 3 и оканчивающихся на 8.
Число делится на 8, если остаток от деления этого числа на 10 равен 8:
КуМир
алг
нач
цел а=99999
цел сум=0
нц пока а<>0
ввод а
если mod(а,3)=0 и mod(а,10)=8
то
сум:=сум+а
всё
кц
вывод сум
кон
Python
a=99999
sum=0
while a!=0:
a=int(input())
if (a%3==0) and (a%10==8):
sum=sum+a
print(sum)
Проверяем:
Входные данные | Выходные данные |
23 | |
48 | |
12 | |
18 | |
34 | |
0 | 66 |
Задача решена!