Sunteți pe pagina 1din 1

Fisa de lucru recursivitate

Clasa a XI-a D
Elev: Ion Alexandru
1. Funcţia F are definiţia alăturată. Ce valoareare F(3)?

int F(int n)
{if(n==0 || n==1) return 1;
else
return 2*F(n-1)+2*F(n-2);}

10

2. Funcţia f are definiţia alăturată:


a) Ce valoare are f(16)?
b) Scrieţi cea mai mare valoare de două cifre pe care o poate avea n astfel încât f(n) să fie
egal cu 2.
int f(int n)
{ if (n<=0) return -1;
if (n%2==0) return 0;
if (n%3==0) return 0;
return 1+f(n-10);}

f(16)=0
f(95)=1+f(85)=1+1+f(75)=1+1+0=2

3. Subprogramul re este definit alăturat. Ce valoarea are re(1)? Dar re(14)?


int re(int i)
{
if (i<9) return 3+re(i+2);
else
if (i==9) return -2;
else return 1+re(i-1);}

re(1)=3+re(3)=3+3+re(5)=3+3+3+re(7)=3+3+3+3+re(9)=3+3+3+3+(-2)=10
re(14)=1+re(13)=1+1+re(12)=1+1+1+re(11)=1+1+1+1+re(10)=1+1+1+1+1+re(9)=1+1+1+1+1+(-2)=3

4. . Funcţia f are definiţia alăturată. Dacă f(x) are valoarea 10100, care este valoarea lui x?
long f(int n)
{
if(n<=0) return 0;
else return f(n-1)+2*n;}

(x)=10100
x=?
10100=2*1+2*2+2*3+…+2*x
10100=2*(1+2+3+…+x)
10100=2*((1+x)*x)/2)
10100=(1+x)*x
x2+x-10100=0
D=1+4*10100=40401
x1=(-1+201)/2=100
x2=(-1-201)/2=-101 (x trebuie să fie pozitiv)
Þ x=100

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