Se consideră şirul Fibonacci, definit astfel: f
1
=1
, f
2
=1
, f
n
=
f
n-1
+
f
n-2
, dacă n>2
.
Cerinţa
Scrieţi un program care citeşte de la tastatură un număr natural n
şi construieşte în memorie o matrice cu n
linii şi n
coloane, astfel încât parcurgând liniile matricei de sus în jos şi de la stânga la dreapta se obţin, în prima linie primele n
numere ale şirului Fibonacci în ordine crescătoare, în linia a doua următoarele n
numere ale şirului Fibonacci în ordine descrescătoare, în linia a treia următoarele n
numere ale acestui şir în ordine crescătoare, şi aşa mai departe.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieşire
Programul afișează Pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricţii şi precizări
1≤n≤6
Exemplu
Intrare
4
Ieșire
1 1 2 3 21 13 8 5 34 55 89 144 987 610 377 233
#include <bits/stdc++.h> using namespace std; int main() { int n , v[100][100] , f1 = 1 , f2 = 1 , f3; cin >> n; v[1][1] = v[1][2] = 1; for(int j = 3 ; j <= n ; ++j) { v[1][j] = f3 = f1 + f2; f1 = f2; f2 = f3; } for(int i = 2 ; i <= n ; ++i) for(int j = 1 ; j <= n ; ++j) { if(i % 2 == 1) v[i][j] = f3 = f1 + f2; else v[i][n-j+1] = f3 = f1 + f2; f1 = f2; f2 = f3; } for(int i = 1 ; i <= n ; ++i) { for(int j = 1 ; j <= n ; ++j) cout << v[i][j] << " "; cout << endl; } return 0; }