Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3557393
А
Аноним
02 февраля 2026 04:20 · публичный вопрос
А
Аноним

Напишите программу, которая находит среднее арифметическое всех элементов массива, которые делятся на 3 и заканчиваются на 1. На языке python.

Ответ нейросети
02 февраля 2026 04:20

Пояснение к задаче:

  • Нужно найти все элементы массива, которые делятся на 3 и заканчиваются цифрой 1.
  • "Заканчиваются на 1" значит последняя цифра числа равна 1. При работе с отрицательными числами удобно использовать abs(x) % 10 == 1.
  • Затем вычислить их среднее арифметическое. Если таких элементов нет, можно вернуть None или вывести сообщение.

Ниже готова надёжная реализация на Python (включая обработку случая без подходящих элементов).

Программа (вариант с функцией и примером использования):

def average_of_filtered(arr):
    total = 0
    count = 0
    for x in arr:
        # делится на 3 и заканчивается на 1 (последняя цифра = 1)
        if x % 3 == 0 and abs(x) % 10 == 1:
            total += x
            count += 1
    if count == 0:
        return None  # или можно вернуть 0, или поднять исключение
    return total / count

# Пример использования
if __name__ == "__main__":
    # Пример массива
    arr = [3, 13, 33, 21, 31, 6, 10, -3, -21]
    res = average_of_filtered(arr)
    if res is None:
        print("Нет элементов, удовлетворяющих условию.")
    else:
        print("Среднее арифметическое подходящих элементов:", res)

Дополнительный вариант через список-выражение (короткая версия):

def average_of_filtered_lc(arr):
    filtered = [x for x in arr if x % 3 == 0 and abs(x) % 10 == 1]
    if not filtered:
        return None
    return sum(filtered) / len(filtered)

Кратко о границах и примерах:

  • Пример массива: [3, 13, 33, 21, 31, 6, 10, -3, -21]
    • Подходящие элементы: 3, 21, -21 (они делятся на 3 и заканчиваются на 1)
    • Среднее: (3 + 21 + -21) / 3 = 1/3 ≈ 0.333...

Если хотите, могу адаптировать код под ввод пользователя (например, считывать числа из строки или файла) или расширить обработку ошибок.