Informatică, întrebare adresată de ALiNSIMION, 9 ani în urmă

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

Răspunsuri la întrebare

Răspuns de theocraciun
5
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;
   }
}

theocraciun: Defapt n nici nu mai trebuie sa il declari. Numai acum m-am gandit :)) .
ALiNSIMION: Mersi frumos :)
Răspuns de AntiEaglesDavids
1
#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;
}


Alte întrebări interesante