cmmdc recursiv

Sa se afle cmmdc pentru 2 numere utilizand varianta recursiva #include<iostream.h>int a,b; int cmmdc(int a,int b){if(a==b) return a;else if (a>b) return cmmdc(a-b,b); else return cmmdc(a,b-a);} void main(){cout<<“a=”;cin>>a;cout<<“b=”;cin>>b;cout<<“cmmdc: “<<cmmdc(a,b);} {module orizontal600}

sirul lui Fibonacci recursiv

Sirul lui Fibonacci Se citeste n.Sa se calculeze termenul de ordin n al sirului lui Fibonacci in varianta recursiva #include<iostream.h>int n; int f(int n){if(n==0) return 0;else if(n==1) return 1; else return f(n-1)+f(n-2);} void main(){cout<<“n=”;cin>>n;cout<<“termenul de ordin “<<n<<” este: “<<f(n);} {module orizontal600}

suma cifrelor recursiv

Sa se scrie o functie recursiva pentru a calcula suma cifrelor unui numar #include <iostream.h>int n; int s(int n){if(n==0) return 0;else return n%10 + s(n/10);} void main(){cout<<“n=”;cin>>n;cout<<“suma cifrelor: “<<s(n);} {module orizontal600}

sortare rapida (quick sort)

QUICK SORT Sa se ordoneze crescator un vector v, folosind metoda de sortare rapida (quick sort). Etapele de rezolvare ale algoritmului QUICK SORT: -se apeleaza functia quick cu limita inferioara li=1 si limita superioara ls=n -functia poz realizeaza mutarea elementului de pe prima pozitie exact pe pozitia k ce o va ocupa acesta in vectorul … Read more

maximul unui vector

Se citeste un vector cu n componente numere intregi.Se cere sa se afiseze valoarea maxima folosind metoda divide et impera #include<iostream.h>int v[100],n; int max(int i,int j){int a,b;if(i==j) return v[i];else { a=max(i,(i+j)/2); b=max((i+j)/2+1,j); if(a>b) return a; else return b; }} void main(){cout<<“n=”;cin>>n;for(int i=0;i<n;i++){ cout<<“v[“<<i<<“]=”; cin>>v[i]; }cout<<“maximul este:”<<max(0,n-1);} {joscommentenable}

cautare binara

Cautare binara Se citeste un vector cu n componente numere intregi,ordonate crescator si o valoare intreaga x.Sa se decida daca x se gaseste sau nu printre componentele vectorului #include<iostream.h> int v[100],n,x; void caut(int i,int j) { if(x==v[(i+j)/2]) cout<<“gasit”<<” “<<“indice “<<(i+j)/2; else if(i<j) if(x<v[(i+j)/2]) caut(i,(i+j)/2 -1); else caut((i+j)/2+1,j); else cout<<“nu s-a gasit”; } void main() { … Read more

cautare in vector

#include<iostream.h>#include<conio.h>typedef int vector[20];int n;vector v; int e(int n,int x){if (n==0) return 0;else if (v[n]==x) return 1; else return e(n-1,x);} void main(){int x,i;cout<<“n=”;cin>>n;cout<<“x=”;cin>>x;for(i=1;i<=n;i++) {cout<<“v[“<<i<<“]=”;cin>>v[i];}if (e(n,x)) cout<<“este”<<endl;else cout<<“nu este”;getch();}

suma elementelor pare

//suma elementelor pare#include<iostream.h>#include<conio.h>typedef int vector[20];int n;vector v; int suma(int n){ if (n==0) return 0; else return suma(n-1) + (v[n]%2==0)*v[n];} void main(){cout<<“n=”;cin>>n;for(int i=1;i<=n;i++){cout<<“v[“<<i<<“]=”;cin>>v[i];}cout<<suma(n)<<endl;getch();} {module orizontal600}

maximul a n componente

Maximul unui vector #include<iostream.h>#include<conio.h>typedef int vector[20];int n;vector v; int maxim(int n){int max;if (n==1) return v[1];else { max=maxim(n-1); if (max<v[n]) return v[n]; else return max; }} void main(){cout<<“n=”;cin>>n;for(int i=1;i<=n;i++){cout<<“v[“<<i<<“]=”;cin>>v[i];}cout<<maxim(n)<<endl;getch();} {module orizontal600}