Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 02 февраля 2026 04:19

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

Ответ нейросети

02 февраля 2026 04:19

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

Пояснение по шагам (для понимания алгоритма)

  • Шаг 1. Пройти по каждому элементу массива.
  • Шаг 2. Проверить два условия: элемент делится на 3 (остаток от деления на 3 равен 0) и заканчивается на цифру 1 (остаток от деления на 10 равен 1).
  • Шаг 3. Если элемент удовлетворяет условиям, добавить его к накопленной сумме и увеличить счетчик подходящих элементов.
  • Шаг 4. После обхода массива: если подходящих элементов не было, вернуть сообщение/значение, обозначающее отсутствие результатов. Иначе вычислить среднее как сумма делённых на количество.
  • Шаг 5. Сложность: линейная по размеру массива O(n). Потребная память — O(1) помимо массива.

Пример реализации на языке Python (пошагово пояснённо)

  • Код: def average_divisible_by3_and_ends_with1(arr): total = 0 # сумма подходящих элементов count = 0 # число подходящих элементов

    for x in arr: # Условия: делится на 3 и заканчивается на 1 if x % 3 == 0 and x % 10 == 1: total += x count += 1 if count == 0: return None # или можно вернуть сообщение: "Нет подходящих элементов" return total / count

Пример использования

arr = [3, 21, 31, 51, 111, 141, 2, 7]

Подходящие элементы: 21, 51, 111, 141

Их сумма = 324, количество = 4, среднее = 81.0

print(average_divisible_by3_and_ends_with1(arr)) # -> 81.0

Пояснение примера:

  • 21 % 3 == 0 и 21 % 10 == 1 → подходит
  • 51, 111, 141 тоже подходят
  • Остальные элементы не удовлетворяют хотя бы одному из условий
  • Среднее = (21 + 51 + 111 + 141) / 4 = 324 / 4 = 81.0

Варианты реализации на других языках (кратко)

  • Java: public static Double averageDivisible3EndsWith1(int[] arr) { long sum = 0; int count = 0; for (int x : arr) { if (x % 3 == 0 && x % 10 == 1) { sum += x; count++; } } if (count == 0) return null; return (double) sum / count; }

  • C++:

#include #include

double averageDivisible3EndsWith1(const std::vector& arr) { long long sum = 0; int count = 0; for (int x : arr) { if (x % 3 == 0 && x % 10 == 1) { sum += x; ++count; } } if (count == 0) return std::numeric_limits::quiet_NaN(); return static_cast(sum) / count; }

  • JavaScript: function averageDivisible3EndsWith1(arr) { let sum = 0; let count = 0; for (const x of arr) { if (x % 3 === 0 && x % 10 === 1) { sum += x; count++; } } return count === 0 ? null : sum / count; }

Советы по тестированию

  • Проверьте случай, когда подходящих элементов нет: например arr = [2, 4, 8].
  • Проверьте с отрицательными числами (если они допускаются): условие можно расширить явным образом, чтобы корректно работать с модулем для отрицательных значений.
  • Протестируйте с массивами разных длин и с большими числами, чтобы убедиться в корректной арифметике и отсутствии переполнения (в Python это не проблема, в других языках — нужно учитывать тип данных).

Если нужно, могу привести более компактную версию или адаптировать под конкретный язык или формат ввода/вывода.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Напишите программу, которая находит среднее арифметическое всех элементов массива, которые делятся на 3 и заканчиваются на 1.
Задача: написать программу, которая находит среднее арифметическое всех элементов массива, которые делятся на 3 и заканчиваются на 1. Пояснение по шагам (для понимания алгоритма) - Шаг 1. Пройти по каждому элементу массива. - Шаг 2. Проверить два условия: элемент делится на 3 (остаток от деления на 3 равен 0) и заканчивается на цифру 1 (остаток от деления на 10 равен 1). - Шаг 3. Если элемент удовлетворяет условиям, добавить его к накопленной сумме и увеличить счетчик подходящих элементов. - Шаг 4. После обхода массива: если подходящих элементов не было, вернуть сообщение/значение, обозначающее отсутствие результатов. Иначе вычислить среднее как сумма делённых на количество. - Шаг 5. Сложность: линейная по размеру массива O(n). Потребная память — O(1) помимо массива. Пример реализации на языке Python (пошагово пояснённо) - Код: def average_divisible_by3_and_ends_with1(arr): total = 0 # сумма подходящих элементов count = 0 # число подходящих элементов for x in arr: # Условия: делится на 3 и заканчивается на 1 if x % 3 == 0 and x % 10 == 1: total += x count += 1 if count == 0: return None # или можно вернуть сообщение: "Нет подходящих элементов" return total / count # Пример использования arr = [3, 21, 31, 51, 111, 141, 2, 7] # Подходящие элементы: 21, 51, 111, 141 # Их сумма = 324, количество = 4, среднее = 81.0 print(average_divisible_by3_and_ends_with1(arr)) # -> 81.0 Пояснение примера: - 21 % 3 == 0 и 21 % 10 == 1 → подходит - 51, 111, 141 тоже подходят - Остальные элементы не удовлетворяют хотя бы одному из условий - Среднее = (21 + 51 + 111 + 141) / 4 = 324 / 4 = 81.0 Варианты реализации на других языках (кратко) - Java: public static Double averageDivisible3EndsWith1(int[] arr) { long sum = 0; int count = 0; for (int x : arr) { if (x % 3 == 0 && x % 10 == 1) { sum += x; count++; } } if (count == 0) return null; return (double) sum / count; } - C++: #include #include double averageDivisible3EndsWith1(const std::vector& arr) { long long sum = 0; int count = 0; for (int x : arr) { if (x % 3 == 0 && x % 10 == 1) { sum += x; ++count; } } if (count == 0) return std::numeric_limits::quiet_NaN(); return static_cast(sum) / count; } - JavaScript: function averageDivisible3EndsWith1(arr) { let sum = 0; let count = 0; for (const x of arr) { if (x % 3 === 0 && x % 10 === 1) { sum += x; count++; } } return count === 0 ? null : sum / count; } Советы по тестированию - Проверьте случай, когда подходящих элементов нет: например arr = [2, 4, 8]. - Проверьте с отрицательными числами (если они допускаются): условие можно расширить явным образом, чтобы корректно работать с модулем для отрицательных значений. - Протестируйте с массивами разных длин и с большими числами, чтобы убедиться в корректной арифметике и отсутствии переполнения (в Python это не проблема, в других языках — нужно учитывать тип данных). Если нужно, могу привести более компактную версию или адаптировать под конкретный язык или формат ввода/вывода.