Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности целых чисел находит сумму и количество чисел, кратных 17, или сообщает, что таких чисел нет. На вход программы подаются целые числа, количество введённых чисел неизвестно, последовательность заканчивается числом 0 (0 признак окончания ввода, не является членом последовательности).
Количество чисел не превышает 100. Введённые числа по модулю не превышают 300.
Программа должна вывести сумму и количество чисел, кратных 17, или вывести NO, если таких чисел в последовательности нет.
Пример работы программы:
Входные данные | Выходные данные |
34 30 17 0 | 51 2 |
16 5 0 | NO |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо организовать цикл чтения чисел до тех пор, пока не будет введён ноль. В процессе чтения мы будем проверять каждое число на кратность 17.
Шаг 1: Инициализация переменных.
Нам понадобятся две переменные-счётчика: одна для накопления суммы () и одна для подсчёта количества (). Изначально обе переменные равны 0.
Шаг 2: Организация ввода и цикла.
Мы считываем первое число. Если оно не равно 0, входим в цикл. Внутри цикла проверяем условие кратности: число кратно 17, если остаток от его деления на 17 равен 0 (в программировании это записывается как ).
Шаг 3: Обработка условий.
Если число кратно 17, мы:
1. Прибавляем его к сумме: .
2. Увеличиваем счётчик количества на единицу: .
После этого считываем следующее число и повторяем проверку.
Шаг 4: Вывод результата.
Когда цикл завершится (будет введён 0), нам нужно проверить, встретилось ли хотя бы одно подходящее число. Если , выводим сумму и количество через пробел. Если , это значит, что чисел, кратных 17, не было — в этом случае выводим "NO".
Пример реализации на языке Python:
s = 0
k = 0
x = int(input())
while x != 0:
if x % 17 == 0:
s += x
k += 1
x = int(input())
if k > 0:
print(s, k)
else:
print("NO")
Разбор примера №1:
Ввод: 34, 30, 17, 0.
1. 34 делится на 17 (). Сумма , количество .
2. 30 не делится на 17. Пропускаем.
3. 17 делится на 17 (). Сумма , количество .
4. Введён 0. Конец. Вывод: 51 2.
Ответ: Программа выводит сумму и количество чисел, кратных 17, либо NO.
Источник: ФИПИ