Professional Documents
Culture Documents
1.
Citirea si afisarea unei matrici folosind functii recursive.
#include <iostream>
using namespace std;
int main()
{
int A[101][101],n,m;
cin>>n>>m;
citire(A,n,m,1,1);
afisare(A,n,m,1,1);
return 0;
}
2.
Sortare cu metoda selectiei - implementare recursiva (tabloul este indexat incepand cu 0)
#include <fstream>
using namespace std;
ifstream is("date.in");
ofstream os("date.out");
int main()
{
int a[100],n;
is>>n;
for(int i=0;i<n;i++)
is>>a[i];
rec(a,n,0,1);
for(int i=0;i<n;i++)
os<<a[i]<<" ";
is.close();
os.close();
return 0;
}
3.
Sortare cu metoda bulelor - implementare recursiva (tabloul este indexat incepand cu 0)
#include <fstream>
using namespace std;
ifstream is("date.in");
ofstream os("date.out");
int main()
{
int a[100],n;
is>>n;
for(int i=0;i<n;i++)
is>>a[i];
bule_rec(a,n);
for(int i=0;i<n;i++)
os<<a[i]<<" ";
is.close();
os.close();
return 0;
}
4.
Implementati in mod recursiv algoritmul de sortare prin insertie.
#include<fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int main()
{
int a[100], n,i;
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
sort(a,n);
for(i=1;i<=n;i++) fout<<a[i]<<" ";
fin.close();
fout.close();
return 0;
}
5.
Se citeste un vector a cu n elemente numere intregi. Construiti si afisati doi vectori b si c contruiti
astfel:
- vectorul b contine elementele pare din vectorul a
- vectorul c contine elementele impare din vectorul a
Se vor folosi functii recursive pentru citire si afisare, precum si pentru construirea celor doi vectori
ceruti.
Exemplu:
date.in
7
2579254
date.out
224
5795
#include <fstream>
using namespace std;
ifstream is("date.in");
ofstream os("date.out");
int main()
{
int a[200],b[100],c[100],n,m=0,k=0;
is>>n;
citire(a,n);
split(a,n,b,m,c,k);
afisare(b,m);
os<<endl;
afisare(c,k);
is.close();
os.close();
return 0;
}
6.
Scrieti o functie recursiva care sterge elementul de la pozitia i dintr-un vector. Vectorul, numarul de
elemente si pozitia i se transmit ca parametri.
7.
Se citeste un vector a cu n elemente numere intregi. Construiti un vector b care sa contina elementele
distincte din vectorul a. Toate prelucrarile vor fi realizate folosind functii recursive.
#include<fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int main()
{
int a[100],b[100],k=0, n;
fin>>n;
citire(a,n);
distict(a,n,b,k);
afis(b,k);
fin.close();
fout.close();
return 0;
}
8.
Sa se stearga din fiecare element al unui vector toate aparitiile cifrei maxime. Se vor folosi functii
recursive pentru urmatoarele prelucrari:
- citirea elementelor vectorului
- determinarea cifrei maxime a unui numar
- stergerea tuturor aparitiilor unei cifre dintr-un numar
- parcurgerea vectorului si modificarea elementelor conform cerintei
- afisarea vectorului
Ex: 7
37 443 13 160 31 11 140
se vor afisa valorile: 3 3 1 10 1 0 10
#include<fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int cmax(int n)
{
if(n<=9) return n;
else if(cmax(n/10)>n%10) return cmax(n/10);
else return n%10;
}
int main()
{
int a[100],n;
fin>>n;
citire(a,n);
s(a,n);
afis(a,n);
fin.close();
fout.close();
return 0;
}
9.
Se citeste un vector cu n elemente numere naturale folosind o functie recursiva. Sa se calculeze suma
tuturor cifrelor din care sunt formate elementele vectorului folosind doar functii recursive.
#include<iostream>
int sumacif(int n)
{
if(n==0) return 0;
else return n%10+sumacif(n/10);
}
int main()
{
cin>>n;
citire(a,n);
cout<<suma(a,n);
return 0;
}
10.
Sa se scrie o functie recursiva care sa afiseze descompunerea in factori primi a unui numar natural.
#include<iostream.h>
11.
Sa se scrie o functie recursiva care calculeaza si returneaza suma cifrelor unui numar natural primit ca
parametru.
#include<iostream.h>
int sumacif(long n)
{ if(n==0) return 0;
else return sumacif(n/10)+n%10;
}
void main()
{
cout<<sumacif(23562);
}
12.
Se citeste un vector a cu n elemente numere naturale. Sa se calculeze elementul maxim din vector. Se
va folosi o functie recursiva pentru citire si una recursiva pentru determinarea elementului maxim.
#include<iostream>
int main()
{
int n,a[100];
cin>>n;
citire(a,n);
afis(a,n);
cout<<max(a,1,n);
system("pause");
return 0;
}
13.
Sa se calculeze recursiv suma primelor n patrate perfecte.
#include<iostream>
int main()
{
int n;
cin>>n;
cout<<suma(n);
system("pause");
return 0;
}