La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Pascal-Turbo-Pascal/1065653-Recursividad.html

Recursividad

Recursividad

Publicado por Luis (6 intervenciones) el 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.