Informatică, întrebare adresată de Krista15, 8 ani în urmă

Scrieți un program care determină suma elementelor impare dintr-un tablou unidimensional prin metoda divide et impera.

Am încercat să scriu ceva, dar nu-mi dă nimic bine.
V-aș fi extrem de recunoscătoare dacă m-ați ajuta...​

Răspunsuri la întrebare

Răspuns de Petruccinator
0

#include <iostream>

int *v;

int diem(const size_t lhs, const size_t rhs) {

size_t mid = (lhs + rhs) >> 1, rez = v[mid] * (v[mid] & 1);

if (lhs != mid)

 rez += diem(lhs, mid);

 

if (mid + 1 < rhs)

 rez += diem(mid + 1, rhs);

 

return rez;

}

int main() {

size_t n;

std::cin >> n;

v = new int[n];

for (size_t i = 0; i < n; ++i)

 std::cin >> v[i];

 

std::cout << diem(0, n);

}

Alte întrebări interesante