👤

Sa se numere elementele pare dintr-un vector cu ajutorul metodei divide et impera. Help!!!

Răspuns :

int pare ( int st, int dr, int a[], int n)
{
    int p1, p2, mij=(st+dr)/2;
    if(st==dr)
       if(a[st]%2==0)
           return 1;
       else return 0;
   else
   {
      p1=pare(st, mij, a, n);
      p2=pare(mij+1, dr, a, n);
      return p1+p2;
   }
}
#include <iostream>
using namespace std;

int dq(int st, int dr, const int v[])
{
    if(st == dr) return v[st] % 2 ? 0 : 1;
    else
        return dq(st, (st + dr) / 2, v) + dq((st + dr) / 2 + 1, dr, v);
}

int main()
{
    int n, v[1000];

    cin >> n;
    for(int i = 1; i <= n; i++) cin >> v[i];
    cout << dq(1, n, v);
    return 0;
}