Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- La apel, returnează valoarea celui mai mare divizor comun al celor două numere naturale nenule primite ca parametri:
- int C1 (int a, int b)
- { if(a==b) return a;
- else if(a>b) return C1(a-b,b);
- else return C1(a,b-a);
- ------------------------------------------------------
- Subprogramul returnează suma elementelor din tabloul v. recursiv
- int suma (int v[], int n)
- {
- if (n==0) return 0;
- else return v[n-1]+suma(v,n-1);
- }
- ------------------------------------------------------
- Subprogramul returnează suma elementelor din tabloul v care sunt divizibile cu 3.
- int sum3(int v[], int n)
- {
- if(n==0) return 0;
- else if(v[n-1]%3==0)
- return v[n-1]+sum3(v, n-1);
- else
- return sum3(v, n-1);
- }
- ------------------------------------------------------
- Subprogramul furnizează prin intermediul parametrului s suma elementelor din tabloul x care au valori numere prime.
- bool prim(int n)
- {
- if(n == 1 || n == 0)
- return false;
- if(n % 2 == 0 && n > 2)
- return false;
- for(int i = 3; i*i <= n; i+=2)
- if(n % i == 0)
- return false;
- return true;
- }
- void P(int x[], int n, int& s)
- {
- if(n == 1)
- {
- s = 0;
- if(prim(x[0] == true))
- s += x[0];
- return;
- }
- P(x, n - 1, s);
- if(prim(x[n - 1]) == true)
- s += x[n - 1];
- }
- ------------------------------------------------------
- Să se scrie o funcție C++ recursivă care citește de la tastatură un șir de valori naturale și le afișează în ordine inversă, cu câte un spațiu între ele.
- void afis()
- {
- int x;
- cin >> x;
- if(x != 0 )
- afis();
- cout << x << " ";
- }
- -----------------------------------------------------
- Să se scrie o funcție C++ recursivă care afișează pe ecran elementele unui vector transmis ca parametru.
- void afisvec(int v[] , int n)
- {
- if(n > 0)
- {
- afisvec( v , n - 1);
- cout << v[n-1] << " ";
- }
- }
- -----------------------------------------------------
- Să se scrie o funcție C++ recursivă care afișează pe ecran, în ordine inversă, elementele unui vector transmis ca parametru.
- void afisvec(int v[] , int n)
- {
- if(n > 0)
- {
- cout << v[n-1] << " ";
- afisvec( v , n - 1);
- }
- }
- -----------------------------------------------
- Subprogramul returnează numărul de elemente din tablou care sunt multipli ai numărului k şi au ultima cifră egală cu k.
- int multiplu(int *a,int n,int k)
- {
- if(n==0) return 0;
- else
- {
- int c=multiplu(a,n-1,k);
- if(a[n-1]%k==0 && a[n-1]%10==k)
- c++;
- return c;
- }
- }
- ----------------------------------------------------
- Subprogramul furnizează prin intermediul parametrului mini valoarea minimă din tabloul x, prin intermediul parametrului maxi valoarea maximă din x, iar prin intermediul parametrului sum suma elementelor din tabloul x.
- void P(int x[], int n, int &mini, int &maxi, int &sum){
- if(n == 1)
- mini = maxi = sum = x[0];
- else
- {
- P(x , n - 1 , mini ,maxi, sum);
- sum += x[n-1];
- if(x[n-1] < mini)
- mini = x[n-1];
- if(x[n-1] > maxi)
- maxi = x[n-1];
- }
- }
- --------------------------------------------------------
- Se citește un vector cu n elemente, numere naturale. Să se determine suma valorilor elementelor cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.----recursiv
- #include <iostream>
- using namespace std;
- int s(int n, int v[], int i, int j)
- {
- if(n == i)
- {
- return v[i];
- }
- else
- {
- int x = s(n - 1, v, i, j);
- if(n <= j)
- return x += v[n];
- else
- return x;
- }
- }
- int main()
- {
- int n, v[1007], p1 = -1, p2 = -1;
- cin >> n;
- for(int i = 1; i <= n; i++)
- cin >> v[i];
- for(int i = 1; i <= n; i++)
- if(v[i] % 2 == 0)
- p2 = i;
- for(int i = 1; i <= n; i++)
- if(v[i] % 2 == 0)
- {
- p1 = i;
- break;
- }
- if(p1 != -1 && p2 != -1)
- cout << s(n, v, p1, p2);
- else
- cout << "NU EXISTA";
- return 0;
- }
- -------------------------------------------------
- Afisare recursiva a matricei
- void Afisare(int A[][nmax+5], int n ,int m , int i , int j)
- {
- if(i <= n)
- {
- cout << A[i][j] << " ";
- if(j < m)
- Afisare(A , n , m , i , j + 1);
- else
- {
- cout << '\n';
- Afisare(A , n , m , i + 1 , 1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement