Recursivitate indirecta
Exista posibilitatea ca un subprogram sa se autoapeleze si sa apeleze un alt subprogram care la randul lui sa il apeleze pe primul. In aceasta situatie este vorba despre recursivitate indirecta. Fie sirul: a0, b0, a1,b1, a2,b2….., an, bn.
Unde: si
Sa se scrie un program care sa calculeze an si bn.
Iata o solutie:
#include<iostream.h>
#include<math.h>
#include<conio.h>
double a0,b0;
int n;
double fctb(int n);
double fcta(int n)
{if (n==0)
return a0;
else
return
(fcta(n-1)+fctb(n-1))/2;
}
double fctb(int n)
{if (n==0)
return b0;
else
return sqrt(fcta(n-1)*fctb(n-1));
}
void main()
{clrscr();
a0=2;
b0=8;
cout<<"n=";
cin>>n;
cout<<endl<<fcta(n)<<"
"<<fctb(n)<<endl;
for(int i=0;i<=n;i++)
cout<<fcta(i)<<" "<<fctb(i)<<";
";
getch();
}