Вопрос задан 25.01.2026 в 22:31. Предмет Информатика. Спрашивает Чуферидзе Алёна.

Найти произведение элементов, кратных 3, в массиве, заданном датчиком случайных чисел на интервале [-28, 27]. Размер – 50.

Перейти к ответам

Ответы на вопрос

Отвечает Калипенова Дильназ.

Если кратко: идём по массиву из 50 целых чисел в диапазоне [-28; 27], перемножаем только те элементы, что делятся на 3 без остатка. Нюансы:

  • Диапазон включает 0, а значит при встрече нуля произведение сразу станет 0 — можно досрочно завершать умножение.

  • Если подходящих элементов нет, обычно либо выводят сообщение, либо принимают произведение пустого набора равным 1. На практике удобнее держать флаг found.

Алгоритм (O(n), одна проходка):

  1. Сгенерировать массив из 50 чисел на интервале [-28, 27].

  2. prod = 1, found = false.

  3. Для каждого x:

    • если x % 3 == 0: prod *= x, found = true;

    • если prod == 0: можно прервать цикл (дальше всё равно останется 0).

  4. По окончании:

    • если found: вывести prod;

    • иначе — сообщить, что элементов, кратных 3, нет.

Пример на Python

python
import random

# генерация массива arr = [random.randint(-28, 27) for _ in range(50)]

prod = 1 found = False

for x in arr: if x % 3 == 0: prod *= x found = True if prod == 0: break # ноль обнуляет произведение

if found: print("Массив:", arr) print("Произведение элементов, кратных 3:", prod) else: print("Массив:", arr) print("Элементов, кратных 3, нет")

Пример на C++ (генерация и вычисление)

cpp
#include using namespace std;

int main() { mt19937 rng((uint32_t)chrono::steady_clock::now().time_since_epoch().count()); uniform_int_distribution<int> dist(-28, 27);

vector<int> a(50); for (int &x : a) x = dist(rng);

long long prod = 1; bool found = false;

for (int x : a) { if (x % 3 == 0) { prod *= x; found = true; if (prod == 0) break; // ноль => дальнейшее умножение бессмысленно } }

cout << "Массив: "; for (int x : a) cout << x << ' '; cout << '\n';

if (found) { cout << "Произведение элементов, кратных 3: " << prod << '\n'; } else { cout << "Элементов, кратных 3, нет\n"; } return 0; }

Замечания:

  • В C++ берите как минимум long long для продукта — значения могут разрастись.

  • Если по условию требуется «произведение пустого набора = 1», просто не выводите отдельное сообщение и печатайте 1, но чаще в учебных задачах просят явно указать отсутствие подходящих элементов.

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос