Documente Academic
Documente Profesional
Documente Cultură
bac)
int F(int n)
{if(n == 0 || n == 1) return 1;
else
return 2*F(n-1)+2*F(n-2);}
a. 1 b. 12 c. 6 d. 10
Raspuns:d. 10
Argumentare:Se verifica daca un nr n este egal cu 0 sau 1, daca da, se returneaza 1 altfel se
rezolva operatiile 2*F(n-1)+2*F(n-2). In cazul de mai sus 3 este mai mare decat 1 asa ca s-a
trecut direct la operatii.
Program:
int main()
{cout << "n=";
cin >> n;
cout << F(n);
}
void f(long n)
{if (n > 9)
{cout << n/100;
f(n/10);
}
}
a. 1231210 b. 123121 c. 1234123121 d. 123
Raspuns corect: a. 1231210
Argumentare: Cat timp numarul n este mai mare decat 9 se vor afisa cifrele numarului de la
capat pana la penultimul,dupa care se va relua functia ,numarului taindu-se ultima cifra.
Program:
#include < iostream.h >
long n;
void f(long n)
{if (n > 9)
{cout << n/100;
f(n/10);
}
}
int main()
{cout << "n=";
cin >> n;
f(n);
}
Program:
#include < iostream.h >
long n,i;
void f(long n, int i)
{if (i < n%10)
{cout << n%10;
f(n/10,i+1);
}
}
int main()
{cout << "n=";
cin >> n;
cout << "i=";
cin >> i;
f(n,i);
}
4)Funcţia F are definiţia alăturată. Ce valoare are F(18)?
int F(int x)
{
if (x < =1) return x;
else return x+F(x-2);
}
a. 90 b. 171 c. 91 d. 18
Raspuns: a. 90
Argumentare:
F(18)=F(16)+18
F(16)=F(14)+16
F(14)=F(12)+14
F(12)=F(10)+12
F(10)=F(8)+10
F(8)=F(6)+8
F(6)=F(4)+6
F(4)=F(2)+4
F(2)=F(0)+2
F(0)=0
Program:
#include < iostream.h >
int x;
int F(int x)
{ if (x < =1) return x;
else return x+F(x-2);
}
int main()
{cout << "x=";
cin >> x;
cout << F(x);
}
int F(int x)
{if(x != 0) return x+F(x-1);
else
return x;
}
a. 5 b. 10 c. 15 d. 6
Raspuns: c. 15
Argumentare:
F(5)=F(4)+5
F(4)=F(3)+4
F(3)=F(2)+3
F(2)=F(1)+2
F(1)=F(0)+1
F(0)=0
Rezolvare:
#include < iostream.h >
int x;
int F(int x)
{if(x != 0) return x+F(x-1);
else
return x;
}
int main()
{cout << "x=";
cin >> x;
cout << F(x);
}