como se desarrollo este programa?
hola a todos: por favor me pueden explicar que estrategia se ocupo para desarrollar este programa, que hacen las variables que se usaron etc.
desde ya muchas gracias
#include <stdio.h>
int Fibonacci(int n);
int main()
{
int a[100];
int n=0,i,p,y=0,s=0,l=0,h;
//int resultado=0;
printf("*********************************************n ");
printf("PROGRAMA QUE LEE UN ENTERO Y LO DESCOMPONE n");
printf("COMO UNA SUMA DE NUMEROS FIBONACCI n");
printf("*********************************************nn ");
printf("Ingrese un numero : ");
scanf("%d",&n);
fflush(stdin);
h=n;
while ((s!=n)&&(l<=2)){
i=0;
//printf(" %d n",h);
p=0;
while (p<h){
p=Fibonacci(i);
i++;
}
h=Fibonacci(i-2);
if ((h+s)<=n) { /* Se comprueba que los numeros Fibonacci sumados no sean
mayores a n */
a[y]=h;
s+=a[y];
y++;
}
if (h==1){
l++;
}
}
printf("n El numero %d se descompone en : n",n);
int z=0;
while (z!=y){
printf(" %d ",a[z]);
z++;
if (z!=y) {
printf(" + ");
}
}
getchar();
}
int Fibonacci(int n)
{
int total=0;
int s1=1,s2=1;
int i=3;
int t=0;
if(n<3)
{
total=1;
} else {
while (i <= n)
{
t=s2;
s2=s1+s2;
s1=t;
i++;
}
total=s2;
}
return(total);
}
desde ya muchas gracias
#include <stdio.h>
int Fibonacci(int n);
int main()
{
int a[100];
int n=0,i,p,y=0,s=0,l=0,h;
//int resultado=0;
printf("*********************************************n ");
printf("PROGRAMA QUE LEE UN ENTERO Y LO DESCOMPONE n");
printf("COMO UNA SUMA DE NUMEROS FIBONACCI n");
printf("*********************************************nn ");
printf("Ingrese un numero : ");
scanf("%d",&n);
fflush(stdin);
h=n;
while ((s!=n)&&(l<=2)){
i=0;
//printf(" %d n",h);
p=0;
while (p<h){
p=Fibonacci(i);
i++;
}
h=Fibonacci(i-2);
if ((h+s)<=n) { /* Se comprueba que los numeros Fibonacci sumados no sean
mayores a n */
a[y]=h;
s+=a[y];
y++;
}
if (h==1){
l++;
}
}
printf("n El numero %d se descompone en : n",n);
int z=0;
while (z!=y){
printf(" %d ",a[z]);
z++;
if (z!=y) {
printf(" + ");
}
}
getchar();
}
int Fibonacci(int n)
{
int total=0;
int s1=1,s2=1;
int i=3;
int t=0;
if(n<3)
{
total=1;
} else {
while (i <= n)
{
t=s2;
s2=s1+s2;
s1=t;
i++;
}
total=s2;
}
return(total);
}