Sunteți pe pagina 1din 3

Recursivitate

1. Subprogramul f este definit alăturat. Indicaţi ce se afişează în urma apelului f(2016);

void f(int n)
{
if (n!=0)
{ cout<<n;
f(n/10);
}
}

2. Subprogramul f este definit alăturat. Indicați ce se afişează în urma apelului f(6).

void f(int x)
{
cout<<x;
if(x>3)
{
f(x-2);
cout<<x;
}
}

3. Subprogramul f este definit alăturat. Indicaţi ce se afişează în urma apelului f(22);

void f(int n, int p)


{
if(n>0)
{
if(n%2==1)
cout<<p<<" ";
f(n/2, p*2);
}
}
4. Se consideră subprogramul f, definit alăturat. Indicați numărul valorilor întregi
afișate în urma apelului f(2024,2).
void f(int x, int nr)
{
if(x*nr>0)
{ if(x%4==0)
cout<<x<<’ ’;
f(x-4,nr-1);
}
cout<<x<<’ ’;
}

5. Subprogramul F este definit alăturat. Scrieţi ce se afişează în urma apelului F(’d’).

void F(char c)
{
if(c>=’a’)
{
cout<<c;
F(c-1);
}
}

6. Subprogramul F este definit alăturat. Scrieţi instrucţiunea prin care se poate apela
subprogramul pentru a afişa, în ordine strict descrescătoare, toţi divizorii pozitivi
proprii ai numărului 2015 (divizori naturali diferiți de 1 și de 2015).

void F (int n, int d)


{
if(d<n/2) F(n, d+1);
if(n%d==0)
cout<<d<<’ ’;
}

7. Se consideră subprogramul f, definit alăturat. Ce se afiseaza la apecul rec(17,2).

void rec(int n, int d)


{
if(d*d<n)
{
cout<<d<<” “;
d++;
rec(n,d+1);
cout<<d<<” “;
}
}
8. Se consideră subprogramul f, definit alăturat. Scrieti valorile f(10,5) si f(20,9).

int f(int a, int b)


{
if (a<b) return a;
if (a%b==0) return b;
return f(a-1,b+2);
}
9. Se consideră subprogramul f, definit alăturat. Scrieti valorile f(6,12) si f(20,6).

int f(int x, int y)


{
if (x<=y) return x-y;
else return f(y-x,x-1)+3*x-2;
}
10. Subprogramul f este definit alăturat. Scrieti ce se afisează în urma apelului f(12).
void f (int n)
{
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
{
cout<<i<<' ';
f (n/i);
}
}
11. Subprogramul f este definit alăturat. Scrieţi ce se afişează în urma apelului f(4).
void f(int n)
{ int i;
if(n>0)
{ for(i=1;i<=n;i++)
cout<<i;
f(n-1);
}
}
12. Subprogramul f este definit alăturat. Scrieti ce se afisează în urma apelului f(3).
void f (int n)
{
int i;
n--;
for(i=1;i<=n;i++)
{
f (i);
cout<<i<<' ';
}
cout<<n<<' ';
}

S-ar putea să vă placă și