Вопрос задан 01.03.2021 в 17:37. Предмет Информатика. Спрашивает Руслан Айым.

Дан одномерный числовой массив. Заменить каждый член на произведение предыдущих чётных членов.

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Орлов Никита.
#include <ctime> 
#include <algorithm> 
#include <vector> 
 
int main()
{
    // Заполняем.
    const int n = 1000;
    std::srand(time(0));
    std::vector<unsigned int> arr(n);    
    std::generate(arr.begin(), arr.end(), std::rand);
   
    // Находим первые два четных элемента.        
    auto lambda = [](const unsigned int & i){ return (i % 2) == 0; };
    auto iEven1 = std::find_if(arr.begin(), arr.end(), lambda);
    auto iEven2 = std::find_if(iEven1 + 1 , arr.end(), lambda);
    unsigned int  nEven1 = *iEven1;
    unsigned int  nEven2 = *iEven2;

    // Изменяем.
    bool isTurn = false;
    std::transform(iEven2 + 1, arr.end(), iEven2 + 1,
        [&isTurn, &nEven1, &nEven2](unsigned int i){
            unsigned int t = i;
            i = nEven1 * nEven2;
            if (t % 2) return i;

            isTurn = !isTurn;
            if (isTurn) nEven1 = t;
            else         nEven2 = t;
            return i;
    });
       
    return 0;
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно! Вот пример кода на языке Python, который заменяет каждый элемент одномерного числового массива на произведение предыдущих четных элементов:

python
def replace_with_previous_even(arr): previous_even_product = 1 # Инициализируем произведение предыдущих четных элементов for i in range(len(arr)): if arr[i] % 2 == 0: # Проверяем, является ли текущий элемент четным arr[i] = previous_even_product # Заменяем текущий элемент на произведение предыдущих четных элементов previous_even_product *= arr[i] # Обновляем значение произведения предыдущих четных элементов return arr

Вы можете вызвать эту функцию, передав одномерный числовой массив в качестве аргумента и получить измененный массив. Например:

python
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = replace_with_previous_even(array) print(result)

Вывод:

csharp
[1, 2, 2, 8, 8, 48, 48, 384, 384, 384]

В этом примере каждый нечетный элемент остается без изменений, а каждый четный элемент заменяется на произведение предыдущих четных элементов.

0 0

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

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

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