Se consideră şirul Fibonacci generalizat, definit astfel: f
1
=a
, f
2
=b
, f
k
=
f
k-1
+
f
k-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:
f
1
,f
2
,f
3
, …
Exemplu
Date de intrare
-1 2 40
Date de ieșire
-1 2 1 3 4 7 11 18 29
#include <bits/stdc++.h> using namespace std; int main() { int n, a, b; cin >> a >> b >> n; int c; if(abs(b) > n && abs(a) <= n) cout << a; else if(abs(a) <= n && abs(b) <= n){ cout << a << ' ' << b << ' '; while(abs(b) <= n){ c = a + b; a = b; b = c; if(abs(b) <= n) cout << b << ' '; } } return 0; }