Создавать и выполнять программы на универсальном языке программирования · 170 заданий
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.
Пример работы программы:
Входные данные | Выходные данные |
|---|---|
8 122 64 16 0 | 29.3 |
111 1 0 | NO |
Решение
Решение.
Для решения этой задачи нам необходимо организовать цикл чтения чисел до тех пор, пока не будет введён ноль. В процессе чтения мы будем проверять каждое число на кратность 8. Если число подходит, мы добавим его к общей сумме и увеличим счётчик таких чисел.
Шаг 1: Инициализация переменных.
Нам понадобятся две переменные:
1. sum_8=0 — для накопления суммы чисел, кратных 8.
2. count_8=0 — для подсчёта количества таких чисел.
Шаг 2: Организация ввода и цикла.
Будем считывать числа по одному. Используем цикл while, который будет работать, пока введённое число не равно 0. Внутри цикла проверяем условие: если остаток от деления числа на 8 равен 0 (x(mod8)=0), то прибавляем это число к sum_8 и увеличиваем count_8 на 1.
Шаг 3: Проверка наличия подходящих чисел.
После завершения цикла (когда ввели 0) нужно проверить, нашли ли мы хотя бы одно число, кратное 8. Если count_8>0, мы вычисляем среднее арифметическое по формуле: avg=sum_8/count_8. Если же count_8=0, выводим "NO".
Шаг 4: Вывод результата.
По условию задачи результат нужно вывести с точностью до десятых. В языке Python для этого можно использовать функцию round() или форматированную строку.
Пример реализации на языке Python:
sum_8 = 0
count_8 = 0
x = int(input())
while x != 0:
if x % 8 == 0:
sum_8 += x
count_8 += 1
x = int(input())
if count_8 > 0:
print(round(sum_8 / count_8, 1))
else:
print("NO")
Разбор примера из условия:
Ввод: 8, 122, 64, 16, 0.
1. 8 кратно 8. sum_8=8, count_8=1.
2. 122 не кратно 8.
3. 64 кратно 8. sum_8=8+64=72, count_8=2.
4. 16 кратно 8. sum_8=72+16=88, count_8=3.
5. Ввод 0 — остановка.
Среднее арифметическое: 88/3=29.333.... Округляем до десятых: 29.3.
Ответ: Программа считывает последовательность, суммирует числа, делящиеся на 8, и выводит их среднее арифметическое с точностью до десятых или NO.
Источник: ФИПИ