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;

}