Răspuns :
#include <iostream>
using namespace std;
int main() {
// insert code here...
int a[20][20],n,i,j,x0,x1;
cout<<"Introduceti dimensiunea:";
cin>>n;
//facem cazurile de baza cand n este 1 sau 2
if(n==1){
cout<<"0";
return 0;
}
else if(n==2){
cout<<"0 1"<<endl;
cout<<"2 1"<<endl;
return 0;
}
//initiem primii 2 termeni ai sirului fibonacci
x0=0;
x1=1;
//completam prima linie a matricei de la stanga la dreapta
for(j=2;j<n;j++){
//urmatorul termen este suma celor 2 precedenti
a[0][j]=x0+x1;
//x0 devine termenul x1
x0=x1;
//x1 ia valoarea termenului nou creat
x1=a[0][j];
}
for(i=1;i<n;i++){
//daca linia este impara, se va face citirea coloanelor de la dreapta la
//stanga
if(i%2==1){
for(j=n-1;j>=0;j--){
a[i][j]=x0+x1;
x0=x1;
x1=a[i][j];
}
}
//altfel, se face de la stanga la dreapta
else{
for(j=0;j<n;j++){
a[i][j]=x0+x1;
x0=x1;
x1=a[i][j];
}
}
}
//afisare matrice
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
using namespace std;
int main() {
// insert code here...
int a[20][20],n,i,j,x0,x1;
cout<<"Introduceti dimensiunea:";
cin>>n;
//facem cazurile de baza cand n este 1 sau 2
if(n==1){
cout<<"0";
return 0;
}
else if(n==2){
cout<<"0 1"<<endl;
cout<<"2 1"<<endl;
return 0;
}
//initiem primii 2 termeni ai sirului fibonacci
x0=0;
x1=1;
//completam prima linie a matricei de la stanga la dreapta
for(j=2;j<n;j++){
//urmatorul termen este suma celor 2 precedenti
a[0][j]=x0+x1;
//x0 devine termenul x1
x0=x1;
//x1 ia valoarea termenului nou creat
x1=a[0][j];
}
for(i=1;i<n;i++){
//daca linia este impara, se va face citirea coloanelor de la dreapta la
//stanga
if(i%2==1){
for(j=n-1;j>=0;j--){
a[i][j]=x0+x1;
x0=x1;
x1=a[i][j];
}
}
//altfel, se face de la stanga la dreapta
else{
for(j=0;j<n;j++){
a[i][j]=x0+x1;
x0=x1;
x1=a[i][j];
}
}
}
//afisare matrice
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}