Vous êtes sur la page 1sur 3

Divide et Impera 1.

Sa se calculeze suma elementelor unui vector st-primul element ; dr- ultimul element; m-mijlocul vectorului ; n-numarul elementelor vectorului #include <iostream> using namespace std; int v[20],n; int suma(int st,int dr) { int m, d1 ,d2; if(st!=dr) { m=(st+dr)/2; d1=suma(st,m); d2=suma(m+1,dr); return d1+d2; } else return v[st]; } int main() { cout<<"n="; cin>>n; for(int i=1;i<=n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } cout<<"Suma celor "<<n<<" elemente ale vectorului este: "<<suma(1,n); }

2. Sa se calculeze cel mai mare element al unui vector. #include <iostream> using namespace std; int v[20],n; int max(int st,int dr) { int a,b; if(st==dr) return v[st]; else { a=max(st,(st+dr)/2); b=max((st+dr)/2+1,dr); if(a>b) return a; else return b; } } int main() { cout<<"n="; cin>>n; for(int i=1;i<=n;i++)

{ cout<<"v["<<i<<"]="; cin>>v[i]; } cout<<"Maximul vectorului este: "<<max(0,n); }

Vous aimerez peut-être aussi