Отрезок
Напишите программу, которая считывает с клавиатуры два числа: a и b, считает и выводит в консоль среднее арифметическое всех чисел из отрезка [a; b], кратных числу 3.
Пример
Начало отрезка: -5
Конец отрезка: 12
Пример вывода
Числа из отрезка, которые делятся на 3:
-3
0
3
6
9
12
Среднее арифметическое этих чисел: 4.5
Что оценивается
Результат вывода соответствует условию.
В выводе присутствует описание результата.
Для решения используется конструкция for.
Ниже подробное решение с объяснениями и примером кода на Python. Учитываю цель "Понять" и ориентируюсь на школьный уровень.
Задача
- Ввести два числа a и b (отрезок [a; b], включая концы).
- Найти все числа в этом отрезке, которые делятся на 3.
- Вывести эти числа, затем вывести их среднее арифметическое.
- Используется цикл for.
Важно
- Если a > b — корректно обработаем, например, обменяем значения так, чтобы диапазон был от меньшего к большему.
- Если чисел, кратных 3, внутри отрезка нет — выведем сообщение об их отсутствии.
План выполнения
1. Прочитать a и b.
2. Если a > b, поменять местами.
3. Пройтись по всем целым числам i в диапазоне [a; b] включительно с помощью цикла for.
4. Для каждого i проверять условие i % 3 == 0. Если выполняется — добавлять i в список найденных чисел.
5. Вывести заголовок: "Числа из отрезка, которые делятся на 3:"
6. Вывести каждое найденное число на новой строке.
7. Если таких чисел больше нуля, посчитать среднее арифметическое и вывести: "Среднее арифметическое этих чисел: <значение>". Формат чисел сделаем так, чтобы целые значения выводились без лишнего .0.
8. Если найденных чисел нет — вывести сообщение об отсутствии.
Пояснение сложности
- Время выполнения O(n), где n = b - a + 1.
- Пространство O(k), где k — количество чисел, кратных 3, внутри отрезка (для хранения их списка).
Пример кода на Python (для выполнения по шагам вышеописанного алгоритма):
a = int(input())
b = int(input())
# Убедимся, что диапазон идёт от меньшего к большему
if a > b:
a, b = b, a
div3 = []
for i in range(a, b + 1):
if i % 3 == 0:
div3.append(i)
print("Числа из отрезка, которые делятся на 3:")
for num in div3:
print(num)
if div3:
mean = sum(div3) / len(div3)
if mean.is_integer():
mean_str = str(int(mean))
else:
mean_str = str(mean)
print(f"Среднее арифметическое этих чисел: {mean_str}")
else:
print("Нет чисел, кратных 3 в заданном отрезке.")
Пояснение по коду
- range(a, b + 1) обеспечивает перебор всех целых чисел от a до b включительно.
- i % 3 == 0 проверяет кратность 3.
- div3 хранит все найденные числа, чтобы позже вывести их в нужном порядке и посчитать среднее.
- mean.is_integer() используется для корректного вывода: 4.0 превращаем в 4, 4.5 остаётся как 4.5.
Пример поведения
- Ввод: a = -5, b = 12
Числа из отрезка, которые делятся на 3:
-3
0
3
6
9
12
Среднее арифметическое этих чисел: 4.5
Если требуется другой формат вывода или другой язык программирования, могу адаптировать решение под ваши требования.