Посчитать количество элементов массива, равных 0. Посчитать сумму индексов тех элементов, значение которых равно 1. Посчитать произведение элементов массива, значение которых равно 2.
Ответы на вопрос
Задачу удобно решить за один проход по массиву.
Пусть:
-
countZero— количество элементов, равных0; -
sumIndexesOne— сумма индексов элементов, равных1; -
productTwo— произведение элементов, равных2.
Пример на C++:
C++#include#include using namespace std;int main() { int n; cin >> n; vector<int> array(n);
for (int i = 0; i < n; i++) { cin >> array[i]; }
int countZero = 0; long long sumIndexesOne = 0; long long productTwo = 1; bool hasTwo = false;
for (int i = 0; i < n; i++) { if (array[i] == 0) { countZero++; }
if (array[i] == 1) { sumIndexesOne += i; }
if (array[i] == 2) { productTwo *= array[i]; hasTwo = true; } }
cout << "Количество элементов, равных 0: " << countZero << '\n';
cout << "Сумма индексов элементов, равных 1: " << sumIndexesOne << '\n';
if (hasTwo) { cout << "Произведение элементов, равных 2: " << productTwo << '\n'; } else { cout << "Элементов, равных 2, в массиве нет\n"; }
return 0; }
Например, для массива:
0 1 2 1 0 2
при нумерации индексов с нуля получаем:
-
нулю равны два элемента;
-
единицы находятся по индексам
1и3, поэтому сумма индексов равна1 + 3 = 4; -
двойки находятся по индексам
2и5, поэтому произведение равно2 × 2 = 4.
Результат:
Количество элементов, равных 0: 2 Сумма индексов элементов, равных 1: 4 Произведение элементов, равных 2: 4
Переменная productTwo изначально равна 1, потому что единица является нейтральным элементом при умножении. Переменная hasTwo нужна, чтобы отличить случай, когда произведение действительно вычислено, от случая, когда в массиве вообще нет элементов со значением 2.
Сложность алгоритма — O(n), так как каждый элемент массива проверяется один раз.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

