Войти
Регистрация
Спроси ai-bota
В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
Показать больше
Показать меньше
Кейси001
28.01.2022 15:13 •
Информатика
Дан одномерный числовой массив. заменить каждый член на произведение предыдущих чётных членов.
Ответ:
1903vita
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;
}
0,0
(0 оценок)
Популярные вопросы: Информатика
bogdanoleksenkozo87a
16.09.2021 12:56
Определить значение s после работы фрагмента: s:=10; for i:=1 to 5 do s:=s-i;...
porotnikova03
09.08.2021 21:11
Написать формулу для нахождения процентов по вкладу, если ставка составляет х% в месяц, вклад кладут на у мес. величина вклада s...
9573st
09.08.2021 21:11
Туземец знает два различных жеста. сколько он может показать различных слов из этих жестов, есои можно использовать в слове 9 жестов.решение...
Марс2014
09.11.2021 06:44
Запиши верный ответ, если дан алгоритм: a1: =4/(13x) a2: =a1/x a3: =a2/x a4: =a3/x y: =a1+a4...
13895702084657812570
07.12.2020 14:05
3) Выполните деление. 4) Проверьте ответы с умножения.1) Определите число цифр в ответе.2) Назовите первую цифру частного.7000 : 83908 : 24984 : 78992 : 850 067 : 977 097 : 398...
Бyлaт
31.08.2022 05:00
Бісектриса кута паралелограма ABCD перетинає сторону BC в точці K ЗНАйти периметр паралелограма якщо AB =12см,BK:KC=4:3...
dashadoray22070
31.08.2022 05:00
На начальной остановке в вагон метро вошли 100 человек. Сколькими они могут выйти на последней 16 остановке?...
olyaolya22
06.03.2020 16:52
ЭССЕ 80-100 СЛОВ, ИНАЧЕ 3:(ВАЩЕ НЕ ШАРЮ ТЕМА:ЭКОЛОГИЯ...
Salsa13
13.09.2021 21:45
У побудові байки визначають...
yaxyeu
13.09.2021 21:45
На рисунке ДАВС = ДАDC, AC = 22 см.Найдите ED (в см), если AE = 9 см, ВЕ+ ЕС = 23 см....
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку
О НАС
О нас
Блог
Карьера
Условия пользования
Авторское право
Политика конфиденциальности
Политика использования файлов cookie
Предпочтения cookie-файлов
СООБЩЕСТВО
Сообщество
Для школ
Родителям
Кодекс чести
Правила сообщества
Insights
Стань помощником
ПОМОЩЬ
Зарегистрируйся
Центр помощи
Центр безопасности
Договор о конфиденциальности полученной информации
App
Начни делиться знаниями
Вход
Регистрация
Что ты хочешь узнать?
#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;
}