ESTRUCTURA DE DATOS

Recursividad

Definición:

Capacidad que tiene los métodos de invocarse a si mismos, esta es una potente herramienta en la informática.

Con esta herramienta muchos algoritmos pueden simplificarse significativamente.

Programa:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iomanip.h>
#include <iostream.h>
class Matematicas
{
public:
void Tablas(int T,int B)
{
if(B<11)
{
cout<<T<<" X "<<setw(2)<<B<<" = "<<(T*B)<<endl;
Tablas(T,B+1);
}
return;
}
long Factorial(long n)
{
if(n<=1)
return 1;
else
return (n* Factorial(n - 1));
}
void Formula(int X)
{
if(X<11)
{
cout<<"f("<<X<<") = "<<((X*X*X)+(2*X)+(3))<<endl;
Formula(X+1);
}
return;
}
void Torres(int N,char Inicio,char Aux,char Fin)
{
if(N==1)
{
cout<<Inicio<<" --> "<<Fin<<endl;
return;
}
Torres(N-1,Inicio,Fin,Aux);
cout<<Inicio<<" --> "<<Fin<<endl;
Torres(N-1,Aux,Inicio,Fin);
return;
}
}tec;
main()
{
int t,b,op=0;
while(op!=5)
{
clrscr();
cout<<"\n1) Tablas de Multiplicar\n2) Factorial de un Numero\n";
cout<<"3) Formula Lineal\n4) Torres de Hanoi\n5) Salida"<<endl;
gotoxy(1,1);
cout<<"Que deseas hacer: ";
cin>>op;
clrscr();
switch(op)
{
case 1:
cout<<"Que Tabla de Multiplicar deseas Imprimir?"<<endl;
cin>>t;
cout<<"Desde que Numero deseas empezar a multiplicar (Menor que 10)"<<endl;
cin>>b;
tec.Tablas(t,b);
break;
case 2:
cout<<"Que Factorial deseas conocer"<<endl;
cin>>t;
cout<<t<<"! = "<<tec.Factorial(t)<<endl;
break;
case 3:
cout<<"f(x) = x^3 + 2x + 3"<<endl;
cout<<"Escribe la Base (Menor de 10)"<<endl;
cin>>t;
tec.Formula(t);
break;
case 4:
cout<<"Cuantos discos deseas mover?"<<endl;
cin>>t;
tec.Torres(t,'A','B','C');
break;
case 5:
cout<<"Salida...";
break;
default:
cout<<"Opcion Erronea...";
break;
}
getch();
}
}
Politica de Privacidad