Răspuns :
PRIMA PROBLEMA (#255 PBINFO)
Se consideră şirul Fibonacci, definit astfel: f1=1 , f2=1 , fn=fn-1+fn-2 , dacă n>2.
Cerinţa
Se dă un număr natural n. Să se afişeze în ordine crescătoare, primii n termeni ai şirului lui Fibonacci.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran primii n termeni ai şirului lui Fibonacci, în ordine crescătoare, separați printr-un spaţiu.
Restricţii şi precizări
1 ≤ n ≤ 40
REZOLVARE
#include <iostream>
using namespace std;
int main ()
{ int f1=1,f2=2,f3,n,i;
cin>>n;
f1=1;
f2=1;
if(n==1)
cout<<f1<<" ";
else
{
cout<<f1<<" "<<f2<<" ";
for(i=3;i<=n;i++)
{f3=f2+f1;
cout<<f3<<" ";
f1=f2;
f2=f3;
}
}
return 0;
}
A DOUA PROBLEMA (#424 pbinfo)
Se consideră şirul Fibonacci generalizat, definit astfel: f1=a , f2=b , fk=fk-1+fk-2 , dacă k>2, unde a și b sunt două numere intregi.
Cerinţa
Se dă un număr natural n și două numere întregi a și b. Să se afişeze în ordine termenii şirului lui Fibonacci generalizat cu valoarea absolută mai mică sau egală cu n.
Date de intrare
Programul citește de la tastatură numerele a b n.
Date de ieşire
Programul afișează pe ecran termenii determinați, separați prin câte un spaţiu.
Restricţii şi precizări
1 ≤ n ≤ 500.000.000
termenii generați se vor înscrie pe 32 de biți cu semn
termenii se vor afișa în ordinea: f1,f2, f3, ...
REZOLVARE:
#include <iostream>
#include <cmath>
using namespace std;
long long a,b,c,n;
int main()
{
cin>>a>>b>>n;
cout<<a<<" ";
while(abs(b)<=n)
{
cout<<b<<" ";
c=a+b;
a=b;
b=c;
}
return 0;
}