Pascal/Turbo Pascal - Recursividad
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. También te puede interesar... contestar xfavor pascal |