Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Pascal/Turbo Pascal - Recursividad

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Recursividad

Autor:Luis (6 intervenciones)
Fecha:20/01/2009 12:42:46
Buenas mi problema es que tengo un código con recursividad y me piden que sea mas iterativo, es decir, que no entre tantas veces en al recursividad. Aqui os dejo el código espero que me ayudeis.

{Entra como parametros el número o valor de X y un contador por variable para llevar
las cuentas de cuantas veces se ejecuta. }

Function Funcion(Numero : word; var Contador : integer) : word;

Begin

Contador := Contador + 1; //Cuantas veces se repite la recursividad.
if (Numero = 1) then
begin
Funcion := 1;
end //FIn if
else if (Numero = 2) then
Begin
Funcion := 1;
end //FIn else if
else
Begin
Funcion := Funcion(Numero - Funcion(Numero - 1,Contador),Contador) + Funcion(Numero - Funcion(Numero - 2,Contador),Contador);
end;//Fin else
End;

El objetivo es que no entre tantas veces como lo hace para un numero elevado para asi reducir el tiempo, que tb se calcula, que tarda en hacerla. Muchas gracias.
Responder