Care din următoarele implementări recursive sunt eficiente?
Verifică
double exp (double x, int n)
{
double val;
if(n==0) return 1;
val = exp(x, n/2);
if(n%2 == 0)
return val*val;
else
return val*val*x;
}
eficiența
eficientă
ineficientă
float d (float a, float b)
{
float c=0;
if(a>b)
return ++c+2*d(a-1, b);
return a;
}
eficiența
eficientă
ineficientă
double F(double x)
{
if(x>0)
return F(x/2)+F(x/2);
return 2;
}
eficiența
eficientă
ineficientă
int a(int x, int y)
{
if(x==y)
return x;
if(x>y) return a(x-y,y);
return a(x,y-x);
}
eficiența
eficientă
ineficientă
Verifică
OK