Есть ответ 👍

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

204
305
Посмотреть ответы 2

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


#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. arr. std: : rand);         // находим первые два четных элемента.             auto lambda = [](const unsigned int & i){ return (i % 2) == 0; };     auto ieven1 = std: : find_if(arr. arr. lambda);     auto ieven2 = std: : find_if(ieven1 + 1 , arr. lambda);     unsigned int   neven1 = *ieven1;     unsigned int   neven2 = *ieven2;     // изменяем.     bool isturn = false;     std: : transform(ieven2 + 1, arr. 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; }

Program test; const n = 100; var i,k: integer; m: array[1..n] of integer; begin randomize; for i: =1 to n do m[i]: =random(1,100); for i: =1 to n do if m[i] mod 2 =0 then inc(k); writeln('количество четных чисел: ',k); end.

Популярно: Информатика