Sunteți pe pagina 1din 2

Fişă de lucru la recursivitate 2

1. Se consideră subprogramul cu definiţia 11. Să se realizeze un subprogram recursiv care să


alăturată. Ce valoare se va afişa în urma calculeze suma divizorilor dintr-un număr dat n.
executării instrucţiuni de mai jos?
cout<<f(12); | 12. Să se realizeze un subprogram recursiv care să
int f (int n){ calculeze produsul divizorilor pari dintr-un număr dat
int c; n.
if (n!=0)
{if (n%2==1) 13. Să se realizeze un subprogram recursiv care să
c=1+f(n/2); calculeze suma divizorilor impari dintr-un număr dat
else c=f(n/2); n.
cout<<n%2;
return c;} 14. Se consideră subprogramul f, definit
else return 0;} alăturat. Ce valoare are f(3713)?
a. 11002 b. 20011 c. 10102 d. 00112 int f(int n){
if(n==0)
2. Se consideră subprogramul cu definiţia return 0;
alăturată. Ce valoare se va afişa în urma return f(n/10)*10+1;}
executării instrucţiunii de mai jos?
cout<<f(8); | 15. Se consideră subprogramul f, definit
int f (int n){ alăturat. Ce valoare are f(8261)?
int c; int f(int a)
if (n!=0) {if(a<10)
{if (n%2==0) return 7;
c=1+f(n/2); return f(a/100)*10+8;}
else c=f(n/2);
cout<<n%2; 16. Se consideră funcţia Suma, definită
return c;} alăturat. Ce valoare are Suma(8)?
else return 0;} Dar Suma(11)?
a. 10003 b. 30001 c. 10013 d. 00112 int Suma(int x)
{if(x == 1 ) return 0;
3. Pentru definiţia alăturată a subprogramului f, if(x%2==0) return Suma(x-1)+(x-1)*x;
ce valoare are f(8)? return Suma(x-1)-(x-1)*x; }
int f(int x)
{if(x<=4) return x*x-3; 17. Considerăm subprogramul f definit alăturat.
return f(x-3)+4;} Ce valoare are f(11,7)?
int f(int x,int y)
4. Subprogramul f are definiţia alăturată. Ce {if(x<=y) return x-y;
valoare are f(5,10)? return f(y-x,x-1)+3;}
int f(int x,int y)
{if(x==y)return x; 18. Pentru subprogramul suma
else if(x<y)return f(x+1,y-1); definit alăturat scrieţi valoarea
else return f(x-1,y);} expresiei suma(3,2).
int suma (int a,int b)
5.Să se realizeze un subprogram recursiv care să { if ((a==0) && (b==0)) return 0;
calculeze de câte ori apare o cifră dată c,într-un if (a==0) {cout<< a<<b<<endl;return 1+suma(a,b-1);}
număr dat n. return 1+suma(a-1,b);

6. Să se realizeze un subprogram recursiv care să 19. Se consideră subprogramul cu definiţia


calculeze de suma cifrelor pare dintr-un număr dat n. alăturată. Ce valoare are f(3,1)?
int f(int n,int y)
7. Să se realizeze un subprogram recursiv care să { if(n!=0)
calculeze produsul cifrelor impare dintr-un număr dat { y=y+1;
n. return y+f(n-1,y);
8. Să se realizeze un subprogram recursiv care să }
calculeze numărul cifrelor pare într-un număr dat n. else return 0;}

9.Realizaţi programul în c++ folosind o funcţie


recursivă pentru rezolvarea cmmdc-ului dintre
două numere întregi fără semn.

10.Să se realizeze un subprogram recursiv care să


calculeze numărul divizorilor dintr-un număr dat n.

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