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();

}

}

 




Google
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Politica de Privacidad