Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Fibonacci

c3sArInH0 P3rnAmBucAn0

Bovino adolescente
Desde
20 Sep 2008
Mensajes
76
ALGUIEN SABE COMO SE ACE EL CODIGO FIBONACCI CON FUNCION RECURSIVA LA VDD :eh?::aynomames:ME PERDI ESA CLASE:aynomames: :eh?:EN MI SCHOOL Y NO SE Q RAYOS SON O COMO SE UTILIZAN LAS FUNCIONES RECURSIVAS A VER SI ALGUIEN ME PUEDE ECHAR LA MANO BUENO GRAX:metal::vientos:
 
es una funcion q se llama asi misma :D jajaja ala madre tenia años de no saber de fibonacci jajaja y todaavia lo siguen usando ... es pq es bueno pa la recursividad... como q te lo dejaron de tarea pq hasta a mi me lo dejaron .. tonz mejor investigale y hay q ir a clases!!! aca te dejo algo de wiki

http://es.wikipedia.org/wiki/Sucesión_de_Fibonacci
 
ps ya tengo este codigo pero necesito q me imprima todo osea
0 1 2 3 5 8 13......
#include <conio.h>
#include <stdio.h>

int fibonacci(int n);
int numero,resultado,z;
void main(void)
{
clrscr();
printf("da num:");
scanf("%d",&numero);
for(z=0;z<=numero;z++)
{
resultado=fibonacci(numero)
printf("%d",resultado);
}

getch();
}
int fibonacci(int n)
{
if(n==0 || n==1) return n;
else
return(fibonacci(n-1)+fibonacci(n-2));
}

a ver si alguien me puede decir mi error por fa
 
q programa usas?? es esto C++ no?? en ese caso al principio usas la funcion void... pero en la estructura principal de tu programa no pones cuando va a ejecutar la funcion void... y mucho menos q hace la funcion void....
eso es lo q puedo ver con solo una miradita a tu prgrama
 
Pues en primer lugar, te voy a sugerir que cuando subas tu código al foro lo metas con etiquetas html.

A lo que me refiero con esto es que resulta más fácil leer

HTML:
int fibonacci(int n)
{
        if (n == 0 || n == 1)  
              return n;
       else
              return(fibonacci(n - 1) + fibonacci(n - 2));
}
que

int fibonacci(int n)
{
if(n==0 || n==1) return n;
else
return(fibonacci(n-1)+fibonacci(n-2));
}

Más que nada es para cuando estemos checando tu código no nos perdamos. En este caso no hay tanto problema, pero imagínate cuando son mucho más líneas de código

Bueno, a tu duda. ¿No encuentras raro que estás mandando a llamar numero veces la función fibonacci pasándole el mismo parámetro?

for(z = 0; z <= numero; z++)
{
resultado=fibonacci(numero)
printf("%d", resultado);
}

En todo caso yo le pasaría la variable z en vez de numero y vería como se comporta el programa.

Espero haberte sido de utilidad.
 
q programa usas?? es esto C++ no?? en ese caso al principio usas la funcion void... pero en la estructura principal de tu programa no pones cuando va a ejecutar la funcion void... y mucho menos q hace la funcion void....
eso es lo q puedo ver con solo una miradita a tu prgrama

Si te refieres a esto:

Código:
void main(void)
Andas muy confundido, la línea anterior indica que la función main no regresa valores al terminar y de igual forma, no los recibe al iniciar.

Bueno, a tu duda. ¿No encuentras raro que estás mandando a llamar numero veces la función fibonacci pasándole el mismo parámetro?

for(z = 0; z <= numero; z++)
{
resultado=fibonacci(numero)
printf("%d", resultado);
}

En todo caso yo le pasaría la variable z en vez de numero y vería como se comporta el programa.

Espero haberte sido de utilidad.

Totalmente de acuerdo contigo compa.
 
gracias amigos ya lo pude resolver ay les dejo el codigo pa q vean como me qdo a y lo siento pero no se como acer para html jejeje sorry
 
tenian razon era el for
#include <conio.h>
#include <stdio.h>

int fibonacci(int n);
int numero,resultado,n;
void main(void)
{
clrscr();
printf("da num:");
scanf("%d",&numero);
for(n=0;n<=numero;n++)
{
resultado=fibonacci(n);
printf("%d",resultado);
}

getch();
}
int fibonacci(int n)
{
if(n==0 || n==1)
return n;
else
return(fibonacci(n-1)+fibonacci(n-2));
}

una ves mas gracias
 
int fibonacci(int n)
{
if(n==0 || n==1)
return n;
else
return(fibonacci(n-1)+fibonacci(n-2));
}
Corijanme si me equivoco pero hice una prueba de escritorio y me resulta:
si pongo como numero 5 entra a un ciclo de cero a cinco, para empezar se utiliza la funcion recursiva para evitar ciclos no?, pero bueno sigamos con la prueba:

0 llama a fibonacci(0) y regresa 0
1 llama a fibonacci(1) y regresa 1
2 llama a fibonacci(2) y regresa 1 ; no deberia regresar 2???

veamos sustituyendo la n por el 2 en la funcion:
int fibonacci(2)
{
if(2==0 || 2==1)
//aqui no entra
return n;
else
return(fibonacci(2-1)+fibonacci(2-2));
// aqui seria algo asi return(fibonacci(1)+fibonacci(0)); //explicado anteriormente
// osea la primera funcion regresará 1 y la segunda 0 por lo tanto 1+0=1
}


Osea es un error....... checa el codigo nuevamente o ejecuta tu programa con un getch(); dentro del ciclo y con saltos de linea
 
no compa lo q pasa q la serie es asi t explico imprime esto 011235813.... suma 0 +1 1 y el segundo uno lo imprime por q pone la suma de 1 +1 y t da el 2 no se si me entiendas luego pasa el 2+3 y t da el 5+3 8... y asi sucesivamente
 
Volver
Arriba