Ayuda con algoritmo
Buenos dÃas...
hace poco estuve en una prueba y me colocaron el siguiente algoritmo....
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<ctype.h>
int Funcion (int) ;
void main ()
{
int Val = Funcion(6);
clrscr() ;
cout <<"\n" ;
cout <<Val ;
getch() ;
}
int Funcion (int Val)
{
if (Val == 1)
{
return 0 ;
}
else if (Val == 2 || Val == 3)
{
return 1 ;
}
return Funcion(Val -1) + Funcion (Val - 2) ;
}
la verdad no pude hacer bien la prueba de escritorio se que imprime 5 porque lo hice en c, vb, java y php... quisiera saber que es lo que hace esta recursividad o más exactamente cual es la prueba de escritorio?? pues la verdad llego a un punto y no se como realiza esta doble recursividad... de ante mano muchas gracias.. saludos desde Duitama.
hace poco estuve en una prueba y me colocaron el siguiente algoritmo....
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<ctype.h>
int Funcion (int) ;
void main ()
{
int Val = Funcion(6);
clrscr() ;
cout <<"\n" ;
cout <<Val ;
getch() ;
}
int Funcion (int Val)
{
if (Val == 1)
{
return 0 ;
}
else if (Val == 2 || Val == 3)
{
return 1 ;
}
return Funcion(Val -1) + Funcion (Val - 2) ;
}
la verdad no pude hacer bien la prueba de escritorio se que imprime 5 porque lo hice en c, vb, java y php... quisiera saber que es lo que hace esta recursividad o más exactamente cual es la prueba de escritorio?? pues la verdad llego a un punto y no se como realiza esta doble recursividad... de ante mano muchas gracias.. saludos desde Duitama.
Como nadie respondió le eché cabeza con la Ayuda del Ingeniero Nelson Angarita y lo desarrollamos asÃ:
Funcion(6)
Funcion(5) + Funcion (4)
Funcion(4) + Funcion(3) Funcion(3) + Funcion(2)
Funcion (3) + Funcion(2)
1 + 1 + 1 + 1 + 1
= 5
Funcion(6)
Funcion(5) + Funcion (4)
Funcion(4) + Funcion(3) Funcion(3) + Funcion(2)
Funcion (3) + Funcion(2)
1 + 1 + 1 + 1 + 1
= 5
F(6)
F(5) + F (4)
F(4) + F(3) + F(3) + F(2)
F (3) + F(2)
1 + 1 + 1 + 1 + 1
= 5
Bueno en este ejemplo se entiende mucho mejor... utilicé F para reemplazar Funcion por falta de espacio... pero se entiende perfectamente la prueba de escritorio.... aunque no corresponda exactamente a una prueba de escritorio clarifica nuestro algoritmo.
saludos y muchas gracias...
F(5) + F (4)
F(4) + F(3) + F(3) + F(2)
F (3) + F(2)
1 + 1 + 1 + 1 + 1
= 5
Bueno en este ejemplo se entiende mucho mejor... utilicé F para reemplazar Funcion por falta de espacio... pero se entiende perfectamente la prueba de escritorio.... aunque no corresponda exactamente a una prueba de escritorio clarifica nuestro algoritmo.
saludos y muchas gracias...
