Контрольные задания > Задание 2: Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел, кратных 6 и оканчивающихся на 8 или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести среднее арифметическое двузначных чисел, кратных 6 и оканчивающихся на 8 или вывести «NO», если таких чисел нет.
Вопрос:
Задание 2: Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел, кратных 6 и оканчивающихся на 8 или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести среднее арифметическое двузначных чисел, кратных 6 и оканчивающихся на 8 или вывести «NO», если таких чисел нет.
Ответ:
Для решения данной задачи, необходимо написать программу, которая будет считывать натуральные числа до тех пор, пока не встретится 0. Программа должна находить среди введенных чисел двузначные числа, кратные 6 и оканчивающиеся на 8, и вычислять их среднее арифметическое. Если таких чисел нет, нужно вывести «NO».
Вот псевдокод программы:
1. Инициализировать переменную `sum` для хранения суммы двузначных чисел, кратных 6 и оканчивающихся на 8, и переменную `count` для подсчета их количества.
2. Считывать числа из ввода до тех пор, пока не встретится 0.
3. Для каждого введенного числа проверить, является ли оно двузначным (то есть, находится в диапазоне от 10 до 99), кратным 6 (то есть, остаток от деления на 6 равен 0) и оканчивается на 8 (то есть, остаток от деления на 10 равен 8).
4. Если число соответствует всем условиям, добавить его к `sum` и увеличить `count` на 1.
5. После завершения ввода проверить, является ли `count` больше 0.
6. Если `count` больше 0, вычислить среднее арифметическое, разделив `sum` на `count`, и вывести результат.
7. Если `count` равно 0, вывести «NO».
Пример реализации на Python:
```python
sum_numbers = 0
count = 0
while True:
num = int(input())
if num == 0:
break
if 10 <= num <= 99 and num % 6 == 0 and num % 10 == 8:
sum_numbers += num
count += 1
if count > 0:
average = sum_numbers / count
print(average)
else:
print("NO")
```
В данном примере, программа считывает числа, проверяет условие двузначности, кратности 6 и окончания на 8. Если число удовлетворяет всем условиям, добавляем его к сумме и увеличиваем счетчик. После ввода всех чисел (до 0), вычисляем среднее арифметическое, если счетчик больше 0, и выводим результат. Если счетчик равен 0, выводим «NO».