Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream cin("input.in");
- ofstream cout("output.out");
- long long v [100], p [100], c, i; // v, p-fibonacci, c-nr termeni
- void Genereaza (int n) // generarea termenilor din sir cat timp sunt mai mici ca n
- {
- v[1] = 1;
- v[2] = 2;
- int i = 3;
- while (true)
- {
- v[i] = v[i - 1] + v[i - 2];
- if (v[i] > n)
- break;
- ++i;
- }
- c = i - 1;
- }
- void Afiseaza (void) // afisarea tuturor posibilitatilor de a descompune numarul
- {
- for (int j = 1 ; j <= i ; ++j)
- cout << p[j] << ' ';
- cout << '\n';
- }
- void Back (int m) // functia back
- {
- if (m == 0)
- {
- Afiseaza();
- return;
- }
- ++i;
- for (int j=1 ; j <= c && v[j] <= m ; ++j)
- {
- if (v[j] < p[i - 1])
- continue;
- p[i] = v[j];
- Back(m - v[j]);
- }
- --i;
- }
- int main (void) // functia main.
- {
- int m;
- cin >> m;
- Genereaza(m);
- Back(m);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement