tutotveti.ru
Предметы
Биология
Українська мова
Музыка
Французский язык
Физика
МХК
Обществознание
Психология
ОБЖ
Право
Беларуская мова
Литература
Химия
Українська література
Экономика
Немецкий язык
География
Информатика
Қазақ тiлi
Геометрия
Английский язык
Русский язык
Окружающий мир
Алгебра
История
Другие предметы
Видео-ответы
ПОИСК
Войти
Регистрация
Информатика
Дан одномерный числовой
Дан одномерный числовой массив. заменить каждый член на произведение предыдущих чётных членов.
seimar2
2 19.06.2019 19:40
0
Ответы
Настя34565688
02.10.2020 05:36
#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;
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика
yulia24082
31.08.2019 21:50
Отметьте единичные имена объектов: a) машина b) береза c) москва d) байкал e) пушкин а.с. f) операционная система g) клавиатурный тренажер h) alt linux...
55636906ррлиод
01.08.2019 22:40
Довжина двійкового коду текстового повідомлення становить 2097152 байти. виразіть це значення в мегабайтах...
angel3530
01.08.2019 22:40
Компьютерные сети. такое : проведите исследование и выясните, что понимают под термином компьютерные сети . только не надо копировать из вики, своими словами, так как...
fg4ne
25.05.2021 16:40
Опишите процесс подключения к компьютеру и последующей настройки устройств звуковоспроизведения и звукозаписи....
DimitryPanika
29.04.2020 16:05
Составить корректирующий код для знаков (согласно варианта), используя код с мимимальной избыточностью (рассчитать избыточность кода в процентах) и заполнить таблицу....
alexeyvinogradp0do9x
29.04.2020 16:05
Как звали маму олеся в произведении Дивак...
Red4521
29.04.2020 16:04
Напишите программу, которая выводит на экран таблицу умножения на 2. (2,5 б.)...
Natashabuchok
29.04.2020 16:04
Перечислите основные цифровые устройства, необходимые для работы с музыкальным редактором....
yuri520
20.10.2020 03:15
В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц гола (за январь - в первом столбце, за февраль во втором и т. д.).Определить обшую зарплату,...
drazzgaming
20.10.2020 03:15
Решите вторую или третью (желательно обе)...
Популярные вопросы
Втрёх пакетах было по 7кг яблок,а в пяти пакетах по 8 кг грушь.ск.всего?...
1
Какие княжества захватили войско бату (батыя) ?...
1
Cумма двух чисел равна 63, а их разность равна 12. найти эти числа...
2
Какую у дяди вещь хотел забрать мальчик после ссоры? из рассказа...
1
1)замените один из глаголов деепричастием,внесите в предложение...
1
Много только сделайте придумайте и запишите предложение, соответствующее...
1
Решыть першого дня кравчыня пошыла 2 однакови спидныци,а другого-3.всього...
2
Выполните умножение а) (4-b) (b+3) б) (3-7y) (2y-8)...
3
Составь которая решается так 20 плюс скобках 20 плюс 3...
1
Почему в архее жизнь существовала только в воде...
2
#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;
}