C/Visual C - Fibonacci

 
Vista:

Fibonacci

Publicado por Angela (1 intervención) el 11/06/2006 02:53:44
Hola ... lo que pasa es que necesito una programa en C que al ingresar un numero natural ... lo descomponga como suma de numeros de fibonacci ... sin que se repita ninguna de estos , por ejemplo:

30 =21+8+1= f 8+f 6+f 1.

Bueno eso es, ojala alguien sepa como hacer este programa que mas de algun de dolor de cabeza me ha traido . Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fibonacci

Publicado por Juan (68 intervenciones) el 12/06/2006 14:56:22
Funcion Antifibonnaci(Var Entero n) -> Entero
Entero aux1, aux2,aux3, retorno;
aux1 <- 1
aux2 <- 1
aux3 <- 1
retorno <- 1
n <- n - 1
mientras aux3 <= n hacer
aux1 <- aux2
aux2 <- aux3
si aux1+aux2 <= n entonces
aux3 <- aux1 + aux2
retorno <- retorno + 1
Fsi
Fmientras
n <- n - aux3
retornar retorno
Ffuncion

Accion Principal
Entero n
Leer (n)
Mientras n > 0 hacer
Escribir ("f " + Antifibonnaci(n))
Fmientras
Fprincipal

Esa seria una idea general, pruebala a ver que tal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fibonacci

Publicado por Angela (1 intervención) el 13/06/2006 04:22:48
La verdad como que no entendi mucho ... :S ....

lo escribi en el compilador pero ... hubo partes que no entendi ... mira aqui te escribo lo que entendi ... o eso creo ...


int antifibonacci(int n)
int aux1,aux2,aux3,retorno;
aux1=1;
aux2=1;
aux3=1;
n=n-1;
while(aux3<=n)
{aux1=aux2;
aux2=aux3;}
if(aux1+aux2<=n)
{aux3=aux1+aux2;
retorno++;}

/*no entendi esta parte */

int main()
{
int n;
printf("Ingrese n: \t");
scanf("%d",&n);
while(n>0)

/*no se a que se refiere ese "f"*/

ojala me pudieras aclarar las dudas ....

gracias de todas formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fibonacci

Publicado por Juan (68 intervenciones) el 13/06/2006 15:38:30
int antifibonacci(int n)
{
int aux1,aux2,aux3,retorno;
aux1=1;
aux2=1;
aux3=1;
n=n-1;
while(aux3<=n)
{aux1=aux2;
aux2=aux3;}
if(aux1+aux2<=n)
{aux3=aux1+aux2;
retorno++;}
}
return retorno;
}

En esta te falto el cierre del while, el retorno del retorno, y el cierre de la funcion.

int main()
{
int n;
printf("Ingrese n: \t");
scanf("%d",&n);
while(n>0)
{
//Bueno ese f lo puse por como pusiste el problema
//30 = f 8 + f 6 + f 1 (la f la saque de alli)
cout << "f " << Antifibonnaci(n))
}
}//Cierre del principal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar