Grile Recursivitate

Descărcați ca doc, pdf sau txt
Descărcați ca doc, pdf sau txt
Sunteți pe pagina 1din 4

1.

Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului f(121,1);?


voidf(longn,inti)
{if(n!=0)
if(n%3>0)
{cout<<i;f(n/3,i+1);}
}
2. Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului
f(12345);?
voidf(longn)
{cout<<n%10;
if(n!=0)
{f(n/100);cout<<n%10;}
}
3. Pentru definiia alturat a subprogramului f, ce se afieaz ca urmare a apelului f(26);?
voidf(intx)
{
if(x>0)
if(x%4==0)
{cout<<x;
f(x1);}
else
{f(x/3);
cout<<y;
}
}
4. Pentru definiia alturat a subprogramului f,
ce se afieaz ca urmare a apelului
f(15,2);? (6p.)
voidf(intn,intx)
{if(x>n)
cout<<0;
else
if(x%4<=1)f(n,x+1);
else
{f(n,x+3);
cout<<1;
}
}
5. Pentru subprogramul fdefinit mai jos, 2. ce se afieaz ca urmare a apelului f(3,17)?
voidf(inta,intb)
{if(a<=b)
{f(a+1,b2);cout<<*;}
elsecout<<b;
}
6. Se consider subprogramul alturat: Ce valoare are f(128,2)?
intf(inta,intb){
if(b<1)return1;
else
if(a%b==0)
return1+f(a/b,b);
else
return0;}

7.Se consider subprogramul fdefinit alturat. Ce se va afia n urma apelului f(12345);


voidf(longintn)
{if(n!=0)
{if(n%2==0)
cout<<n%10;
f(n/10);
}
}
a. 513b. 24c. 42d. 315
8. Se consider subprogramul f, descris alturat. Ce se va afia n urma apelului f(3);?
voidf(intn)
{if(n!=0)
{if(n%2==0)
cout<<n<<;
f(n1);
cout<<n<<;
}
elsecout<<endl;}
9. Se consider subprogramul fcu definiia alturat. Ce valoare are f(1213111,1)?
intf(longintn,intk){
if(n!=0)
if(n%10==k)
return1+f(n/10,k);
elsereturn0;
elsereturn0;}
a. 5b. 3c. 2d. 1
10. Se consider subprogramul cu definiia alturat. Ce valoare are f(3,1)?
intf(intn,inty)
{if(n!=0)
{y=y+1;
returny+f(n1,y);
}
elsereturn0;
}
a. 9b. 6c. 7d. 8
20. Se consider subprogramul, f, definit alturat. Ce valoare are f(100)?
intf(intn)
{if(n==0)return0;
elsereturnn%2+f(n/2);
}
21. Considerm subprogramul recursiv definit alturat. Ce se va afia n urma apelului: f(C)
voidf(charc)
{if(c>A)f(c1);
cout<<c;
if(c>A)f(c1);

22. Pentru subprogramul sumadefinit alturat, scriei valoarea expresiei suma(5,4).


intsuma(inta,intb)
{if(a==0&&b==0)return0;
elseif(a==0)return1+suma(a,b1);
elsereturn1+suma(a1,b);}
23. Funcia fare definiia alturat. a) Ce valoarea are f(17)? b) Ce valoare are f(22)?
intf(intn)
{if(n<=9)return0;
if(n%4==0)return0;
return1+f(n3);
}
24. Funcia fare definiia alturat:a) Ce valoare are f(16)? b) Scriei cea mai mare valoare de dou cifre
pe care o poate avea nastfel nct f(n)s fie egal cu 2.
intf(intn)
{if(n<=0)return1;
if(n%2==0)return0;
if(n%3==0)return0;
return1+f(n10);
}
25. Subprogramul afiseste definit alturat. Ce se afieaz ca urmare a apelului afis(8);
voidafis(intn)
{cout<<n;|printf(%d,n);
for(inti=n/2;i>=1;i)
if(n%i==0)afis(i);
}
26. Subprogramul scrieeste definit alturat. Ce se afieaz ca urmare a apelului scrie(1,7);
voidscrie(intx,inty)
{cout<<x<<y;|printf(%d%d,x,y);
if(x<y)
{scrie(x+1,y1);
cout<<(x+y)/2;|printf(%d,(x+y)/2);
}
}
27.Subprogramul feste definit alturat. Ce valoarea are f(8,4)?
intf(intx,inty)
{if(x<y)return1+f(x+1,y);
if(y<x)return1+f(y+1,x);
return1;}
28. Ce se afieaz ca urmare a apelului p(123); dac subprogramul pare definiia alturat.
voidp(intx)
{cout<<x;
if(x!=0){p(x/10);
cout<<x%10;
29. Subprogramul feste definit alturat. Ce se afieaz ca urmare a apelului f(1,4);
voidf(intx,inty)
{for(inti=x;i<=y;i++)
{cout<<i;f(i+1,y);}
}
30. Se consider subprogramul recursiv f1definit alturat. Ce se va afia n urmaapelului f1(5)?
voidf1(intx)
{if(x<=9)

{cout<<x+1;
f1(x+2);
cout<<x+3;
}

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