Vous êtes sur la page 1sur 2

#include <iostream>

using namespace std;


/*
1. Elaborati o functie pentru afisarea primilor n termeni din sirul
Fibonacci
1 1 2 3 5 8 13 21 34 55 89 144
2. Sa se descompuna un numar n natural in suma de numere Fibonacci
distincte
120=89+31=89+21+10=89+21+8+2
*/
void fibonaci(int n)
{ int f1=1,f2=1,f3;
cout << f1 << " " ;
if(n==1) return;
cout << f2 << " ";
int i=3;
while(i<=n)
{ f3=f1+f2;
cout << f3 << " ";
f1=f2;
f2=f3;
i++;
}
}

int maxfib(int n)
{ int f1=0,f2=1,f3=1;
while(f3<=n)
{ f1=f2;
f2=f3;
f3=f1+f2;
}
return f2;
}

void descompunere(int n)
{ int f;
cout << n << " = ";
while(n>0)
{ f=maxfib(n);
cout << f << " + ";
n=n-f;
}
cout << "\b\b ";
}
int main()
{ int n;
cout << "n= ";
cin >> n;
//fibonaci(n);
descompunere(n);
return 0;
}

Vous aimerez peut-être aussi