C++ Relación con la Sucesion Fibonacci
Publicado por Juan (1 intervención) el 11/06/2012 01:02:55
Hola,
Me encontraba leyendo sobre la recursión en las funciones y pues me puse a practicar, ya que me encuentro aprendiendo C++ utilizo el dev-cpp, en fin me puse a practicar y logre hacer mi programa con mi concepto básico de lo que era la sucesión fibonacci, en fin... El hecho es que al seguir leyendo me encuentro con la sucesión pero esta terminaba con:
return ( fib(n-1)+fib(n-2) )
Mientras que a mi me habia quedado asi:
Para no hacer larga la historia, quede perdido por un instante ya que logicamente para encontrar la posición 5 por ejemplo (5-1)+(5-2)=7 mientras que no me daba ese resultado... luego de un rato segui buscando y encontre, que era la formula para saber el valor de esa posicion y segun el texto que encontre la sucesion empieza con [0,1].
Por tanto (5-1)=4. La posición 4 tiene el valor "2". Entonces (5-2)=3. La posición 3 es "1". Es decir que el ejemplo anterior (5-1)+(5-2)=3.
[0,1,1,2,3,5,8] Si se fijan la posición quinta es el 3 entonces estaría correcto. Bueno ya di muchas vueltas pero mi duda finalmente es, porque C++ entiende esto? Me podria dar problemas o como puedo evitarlo, ya que no es muy logico si se trata de otra operación.
Me encontraba leyendo sobre la recursión en las funciones y pues me puse a practicar, ya que me encuentro aprendiendo C++ utilizo el dev-cpp, en fin me puse a practicar y logre hacer mi programa con mi concepto básico de lo que era la sucesión fibonacci, en fin... El hecho es que al seguir leyendo me encuentro con la sucesión pero esta terminaba con:
return ( fib(n-1)+fib(n-2) )
Mientras que a mi me habia quedado asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<iostream>
using namespace std;
void fibonacci(int);
int previo=0,ultimo=1,sucesion;
int main()
{
int cantidad;
cout << "Ingrese una cantidad: "; cin>>cantidad;
cout << endl;
if (cantidad>0)
{
cout << "Sucesion: 1,"; cantidad--;
fibonacci(cantidad);
}
else
{
cout << "Numero Invalido!" << endl;
}
cout << endl; cout << endl;
system("PAUSE");
return 0;
}
void fibonacci(int cantidad)
{
if(cantidad>0)
{
sucesion=previo+ultimo;
cout << sucesion << ","; previo=ultimo; ultimo=sucesion;
cantidad--;
fibonacci(cantidad);
}
}
Para no hacer larga la historia, quede perdido por un instante ya que logicamente para encontrar la posición 5 por ejemplo (5-1)+(5-2)=7 mientras que no me daba ese resultado... luego de un rato segui buscando y encontre, que era la formula para saber el valor de esa posicion y segun el texto que encontre la sucesion empieza con [0,1].
Por tanto (5-1)=4. La posición 4 tiene el valor "2". Entonces (5-2)=3. La posición 3 es "1". Es decir que el ejemplo anterior (5-1)+(5-2)=3.
[0,1,1,2,3,5,8] Si se fijan la posición quinta es el 3 entonces estaría correcto. Bueno ya di muchas vueltas pero mi duda finalmente es, porque C++ entiende esto? Me podria dar problemas o como puedo evitarlo, ya que no es muy logico si se trata de otra operación.
Valora esta pregunta


0