You are on page 1of 5

1.//2+4+...

+2n-divide et impera }
#include<iostream.h> void main()
int v[102],n; {
void divizeaza(int s,int d,int &m) cout<<"n=";cin>>n;
{ m=(s+d)/2;} produs(1,n,pr);
void combina(int x,int y,int &z) cout<<"produs="<<pr;}
{ z=x+y;} --------------------------------------------------
void dei(int s,int d, int &z) 4.//prod nr pare din sir
{ int m,x,y; #include<iostream.h>
if(d==s) z=2*v[s]; int n,pr,v[100],i;
else void produs(int s,int d, int&pr)
{ divizeaza(s,d,m); {
dei(s,m,x) ; int pr1,pr2;
dei(m+1,d,y); if(s==d) if(v[s]%2==0) pr=v[s];
combina(x,y,z); } else pr=1;
} else {produs(s,(s+d)/2,pr1);
void main() produs((s+d)/2+1,d,pr2);
{ pr=pr1*pr2;
int i,z;cout<<"n=";cin>>n; }
for(i=1;i<=n;i++) }
{ void main()
cout<<"v["<<i<<"]="; cin>>v[i]; } {
dei(1,n,z); cout<<"n=";cin>>n;
cout<<"suma="<<z; for(i=1;i<=n;i++)
} {
------------------------------------------------------- cout<<"v["<<i<<"]=";
2.//suma primelor n nr naturale cin>>v[i];
#include<iostream.h> }
int n,pr; int sum; produs(1,n,pr);
void suma(int s,int d, int&sum) cout<<"produs="<<pr;}
{ -----------------------------------------
int sum1,sum2; 5.//maximul elementelor din matrice div et impera
if(s==d) sum=s; #include<iostream.h>
else {suma(s,(s+d)/2,sum1); int n,max,v[10][10],i,j;
suma((s+d)/2+1,d,sum2); void maxim( int v[10][10],int s,int d, int&max)
sum=sum1+sum2; } {
} int max1,max2;
void main() if(s==d){ max1=v[s][1];
{ cout<<"n=";cin>>n; for(j=1;j<=n;j++)
suma(1,n,sum); if (max1<v[s][j])max1=v[s][j];
cout<<"suma="<<sum;} max=max1; }
--------------------------------------------- else {maxim(v,s,(s+d)/2,max1);
3.//prod 1*2*3*...*n maxim(v,(s+d)/2+1,d,max2);
#include<iostream.h> if(max1>max2)max=max1;
int n,pr; else max=max2; }
void produs(int s,int d, int&pr) }
{ void main()
int pr1,pr2; {
if(s==d) pr=s; cout<<"n=";cin>>n;
else {produs(s,(s+d)/2,pr1); for(i=1;i<=n;i++)
produs((s+d)/2+1,d,pr2); for(j=1;j<=n;j++)
pr=pr1*pr2; {
} cout<<"mat["<<i<<','<<j<<"]="; cin>>v[i][j]; }
1
maxim(v,1,n,max); cout<<"v["<<i<<"]="; cin>>v[i];
cout<<"maxim="<<max;} }
------------------------------------------ maxim(1,n,max);
6.//nr elem pare -in mod standard cout<<"maximul="<<max;}
#include<iostream.h> ----------------------------------------------
int v[100],n; 8.//sortare rapida(QUIksort) prin div et impera
void divizeaza(int s,int d,int &m) #include<iostream.h>
{ m=(s+d)/2;} int x[100],n;
void combina(int x,int y,int &z) void schimb(int &a,int &b)
{ z=x+y;} { int aux=a;a=b;b=aux;}
void dei(int s,int d, int &z) /* sau
{ int m,x,y; void divizeaza(int s,int d,int &m)
if(d==s) { int i,pi,pj,j;
if(v[s]%2==0) z=1; i=s;j=d;pi=0;pj=1 ;
else z=0; while(i<j)
else {
{ if(x[i]>x[j]) {schimb(x[i],x[j]);
divizeaza(s,d,m); schimb(pi,pj);}
dei(s,m,x) ; i=i+pi;j=j-pj;}
dei(m+1,d,y); m=i;} */
combina(x,y,z); void divizeaza(int s,int d,int &m)
} {
} int pivot=x[s],i=s,j=d;
void main() while(i<j)
{ { while(x[i]<pivot)i++;
int i,z;cout<<"n=";cin>>n; while(x[j]>pivot)j--;
for(i=5;i<=12;i++) if(i<j) schimb(x[i],x[j]);}
{ m=i;}
cout<<"v["<<i<<"]="; void quiksort(int s,int d)
cin>>v[i]; {
} int m;
dei(5,12,z); if(s<d) {divizeaza(s,d,m);
cout<<"nr elem pare="<<z; quiksort(s,m-1);
} quiksort(m+1,d);}
------------------------------------------------- }
7.//max elem pare void main()
#include<iostream.h> {
int n,max,v[100],i; int i;cout<<"n=";cin>>n;
void maxim(int s,int d, int&max) for(i=1;i<=n;i++)
{ {
int max1,max2; cout<<"x["<<i<<"]=";cin>>x[i];}
if(s==d) if(v[s]%2==0) max=v[s]; quiksort(1,n);
else max=0; cout<<"vect sort e="<<endl;
else {maxim(s,(s+d)/2,max1); for(i=1;i<=n;i++)
maxim((s+d)/2+1,d,max2); cout<<x[i]<<" ";
if (max1>max2) max=max1; }
else max=max2; } --------------------------------------
} 9.//sum el poz din matrice
void main() #include<iostream.h>
{ int n,v[10][10]; int sum,i,j;
cout<<"n=";cin>>n; void suma(int v[10][10],int s,int d, int&sum)
for(i=1;i<=n;i++) {
{ int sum1,sum2;
2
if(s==d){ sum=0; pr=pr1; }
for(j=1;j<=n;j++)if(v[s][j]>0) else {produs(v,s,(s+d)/2,pr1);
sum=sum+v[s][j]; produs(v,(s+d)/2+1,d,pr2);
} pr=pr1*pr2;}
else {suma(v,s,(s+d)/2,sum1); }
suma(v,(s+d)/2+1,d,sum2); void main()
sum=sum1+sum2; } {
} cout<<"n=";cin>>n;
void main() for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
cout<<"n=";cin>>n; {
for(i=1;i<=n;i++) cout<<"mat["<<i<<','<<j<<"]=";
for(j=1;j<=n;j++) cin>>v[i][j];
{ }
cout<<"mat["<<i<<','<<j<<"]="; produs(v,1,n,pr);
cin>>v[i][j]; cout<<"produs="<<pr;}
} ------------------------------------
suma(v,1,n,sum); 12.//algoritmul de interclasare a 2 vectori deja sortati
cout<<"suma="<<sum; #include<iostream.h>
} int a[10],n;
------------------------------------------------ void sort(int s, int d, int a[10])
10.//afisare elem de sub dg pp , div et imp {int m;
#include<iostream.h> if(a[s]>a[d]){m=a[s];a[s]=a[d];a[d]=m;}}
int n,nr,v[10][10],i,j; void interclasare(int s,int d,int m, int a[10])
void cit_mat(int v[10][10],int s,int d) {
{int j; int b[10],i,j,k;
if(s==d) for(j=1;j<=n;j++) cin>>v[s][j]; i=s;j=m+1;k=1;
else {cit_mat(v,s,(s+d)/2); while(i<m && j<d) if(a[i]<=a[j]) b[k++]=a[i++];
cit_mat(v,(s+d)/2+1,d); } else b[k++]=a[j++];
} if(i<=m)for(j=i;j<=m;j++)b[k++]=a[j];
void afis_mat(int v[10][10],int s,int d) else for(i=j;j<=d;j++)b[k++]=a[i];
{ for(i=s;i<=d;i++)
int j; a[i]=b[k++];}
if(s==d) { for(j=1;j<=s-1;j++) void divimpera(int s, int d, int a[10])
cout<<v[s][j]<<" "; cout<<endl;} {int m;
else {afis_mat(v,s,(s+d)/2); if(s==d)sort(s,d,a);
afis_mat(v,(s+d)/2+1,d);} else {m=(s+d)/2;
} divimpera(s,m,a);
void main() divimpera(m+1,d,a);}}
{ cout<<"n=";cin>>n; void main()
cout<<"mat ciy="<<endl; {
cit_mat(v,1,n); int i;cout<<"n=";cin>>n;
afis_mat(v,1,n); } for(i=1;i<=n;i++)
----------------------------------- {
11.//prod elem din matr cout<<"a["<<i<<"]=";cin>>a[i];}
#include<iostream.h> divimpera(1,n,a);
int n,pr,v[10][10],i,j; cout<<"vect sort e="<<endl;
void produs( int v[10][10],int s,int d, int&pr) for(i=1;i<=n;i++)
{ cout<<a[i]<<" "; }
int pr1,pr2; ---------------------------------------------------
if(s==d){ pr1=1; 13.// citeste si afiseaza numai elem div cu 3 din mat
for(j=1;j<=n;j++) prin div et impera
pr1=pr1*v[s][j]; #include<iostream.h>
3
int n,nr,v[10][10],i,j; --------------------------------------------------
void cit_mat(int v[10][10],int s,int d) 15.//schimba diagonala ppala cu dgonala secundara
{int j; #include<iostream.h>
if(s==d) for(j=1;j<=n;j++) cin>>v[s][j]; #include<iomanip.h>
else {cit_mat(v,s,(s+d)/2); int a[50][50],n,m,i,j,x;
cit_mat(v,(s+d)/2+1,d); } } void scrie()
void afis_mat(int v[10][10],int s,int d) { for(int i=1;i<=n;i++)
{ int j; { cout<<"\n";
if(s==d) { for(j=1;j<=n;j++) if(v[s][j]%3==0) for(int j=1;j<=n;j++)
cout<<v[s][j]<<" "; cout<<setw(4)<<a[i][j]; }}
cout<<endl;} void schimba(int ls,int ld)
else {afis_mat(v,s,(s+d)/2); { if(ls<=ld)
afis_mat(v,(s+d)/2+1,d); } } {int m,aux,k;m=(ls+ld)/2 ;k=n+1-m;
void main() x=a[m][m];a[m][m]=a[m][k];a[m][k]=x;
{ cout<<"n=";cin>>n; schimba(ls,m-1);
cout<<"mat ciy="<<endl; schimba(m+1,ld);}}
cit_mat(v,1,n); void main()
afis_mat(v,1,n); } {cout<<"dati nr de elem=";cin>>n;
---------------------------------------------- for(int i=1;i<=n;i++)
14.// citeste mat afiseaza suma elem div cu 3 din mat for(int j=1;j<=n;j++) cin>>a[i][j];
prin div et impera schimba(1,n);
#include<iostream.h> scrie(); }
int n,nr,v[10][10],i,j,sum; ----------------------------------------------------------
void cit_mat(int v[10][10],int s,int d) 16.//cauta binara-algoritm prin divide et impera
{int j; //nu tine cont de ordinea elem din vector
if(s==d) for(j=1;j<=n;j++) cin>>v[s][j]; //cautare binara
else {cit_mat(v,s,(s+d)/2); //nu vede primul si ultimul
cit_mat(v,(s+d)/2+1,d); } } #include<iostream.h>
void afis_mat(int v[10][10],int s,int d) int v[100],n,x;
{ int j; void divizeaza(int s,int d,int &m)
if(s==d) { for(j=1;j<=n;j++) cout<<v[s][j]<<" "; { m=(s+d)/2;}
cout<<endl;} void cauta(int s,int d,int &z)
else {afis_mat(v,s,(s+d)/2); {
afis_mat(v,(s+d)/2+1,d);} int m;
} if(d>s){divizeaza(s,d,m);
void suma(int v[10][10],int s,int d, int&sum) if (v[m]==x)z=m;
{ int sum1,sum2; else if (x>v[m]) cauta(m+1,d,z);
if(s==d){ sum=0; else cauta (s,m,z);}}
for(j=1;j<=n;j++)if(v[s][j]%3==0) void main()
sum=sum+v[s][j]; {
} int i,z=0;
else {suma(v,s,(s+d)/2,sum1); cout<<"n=";cin>>n;
suma(v,(s+d)/2+1,d,sum2); cout<<"x=";cin>>x;
sum=sum1+sum2; } } for(i=1;i<=n;i++)
void main() {
{ cout<<"n=";cin>>n; cout<<"v["<<i<<"]=";cin>>v[i];}
cout<<"mat ciy="<<endl; cauta(1,n,z);
cit_mat(v,1,n); if(z==0) cout<<"nu exista elem "<<x<<"in vect";
afis_mat(v,1,n); else cout<<"exista pe poz"<<z;}
suma(v,1,n,sum);
cout<<"suma="<<sum;}

4
5

You might also like