Sunteți pe pagina 1din 3

SIRUL LUI Fibonacii.

CALCULUL UNOR SUME CU TERMENUL GENERAL DAT


Se citeste un numar n. Daca este termen al sirului se va afisa un mesaj corespunzator daca nu se va incerca
scrierea lui ca suma de doua numere fibonacci
void proced_fibon(int&x, int&y,int&z,int&n,int &ok)
{
if(z==n) {
if(ok) cout<<"numar fibonacci";
else cout<<z;
n=0;
}
else
{
cout<<y<<" ";
ok=0;
n=n-y;
}
}
int main()
{
int n,ok,a,b,c;
cin>>n;
ok=1;
do
{
a=0;
b=1;
c=a+b;
while(c<n)
{
a=b;
b=c;
c=a+b;
}
proced_fibon(a,b,c,n,ok);
}while(n);
return 0;
}

Se citeste n. Sa se determine elementul de ordin n al sirului lui Fibonacci


int fib(int n) {
if (n == 0) {
return 0;
}
else if (n == 1) {
return 1;
}
else {
return fib(n-1) + fib(n-2);
}
}
int main() {
int n;
cout << "Introduceti numarul: ";
cin >> n;
cout << endl << "F(" << n << ") = " << fib(n) << endl << endl;
return 0;
}
S se verifice dac dou numere naturale date sunt termeni consecutivi ai irului Fibonacci.
int main()
{
int a,b,x,y,z,aux;
cin>>a;
cin>>b;
if(a>b) {aux=a;a=b;b=aux;}
x=y=1;
z=x+y;
while(z<b)
{
x=y;
y=z;
z=x+y;
}
if(z>b) cout<<"NU sunt termeni consecutivi ai sirului Fibonaci";
else if(y==a) cout<<"DA sunt termeni consecutivi ai sirului Fibonaci";
return 0;
}

Calcul a valorii expresiei xn, unde x este un numr real, iar n este numr natural.
Exist ns o soluie mai rapid, bazat pe relaiile urmtoare:
dac n este impar, atunci xn = xn-1 * x
dac n este par, atunci xn = xn/2 * xn/2
n acest fel, numrul total de operaii de nmulire va scdea semnificativ. De exemplu pentru calculul lui x13 se
vor efectua numai 5 nmuliri, iar x100 doar 8 nmuliri.
int x,n,p;
cin>>x>>n;
p=1;
while (n > 0)
{
if (n%2)
{
p *= x;
n-- ;
}
x=x*x;
n/=2 ;
}
cout<<p;
return 0;