👤



Se da un vector v cu n numere intregi. Scrieți un program C++ care determina simultan suma și produsul elementelor din vector utilizând metoda Divide et Impera.

exemplu :
n=5
1 33 -15 70 9
suma = 98
produs = - 311850


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int n, v[1001], i, s, p;

void SumaProd(int v[], int st, int dr, int &s, int &p)

{

   if (st==dr)

       {

           s=v[st]; p=v[st];

       }

   else

   {

       int m=(st+dr)/2;

       int s1=0, p1=1; SumaProd(v,st,m,s1,p1);

       int s2=0, p2=1; SumaProd(v,m+1,dr,s2,p2);

       s=s1+s2;

       p=p1*p2;

   }

}

int main()

{

   cin >> n;

   for (i=1; i<=n; ++i)

       cin >> v[i];

   SumaProd(v, 1, n, s,p);

   cout << "suma= " << s << "\n";

   cout << "produsul= " << p;

}

Explicație: