Scrieţi un program care citeşte de la tastatură un număr natural nenul n
(1≤n≤30
) şi construieşte o matrice pătratică cu n
linii şi n
coloane formată numai din valori ce aparţin mulţimii {1,2,3,...,n}
astfel încât elementele din matrice situate pe diagonala secundară să fie egale cu n
, elementele situate pe celelalte două “semidiagonale” paralele cu diagonala secundară şi alăturate diagonalei secundare să fie egale cu n-1
, elementele situate pe următoarele două “semidiagonale” paralele cu diagonala secundară, de o parte şi de alta a acesteia, să fie egale cu n-2
etc.
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 ≤ 30
Exemplu
Intrare
5
Ieșire
1 2 3 4 5 2 3 4 5 4 3 4 5 4 3 4 5 4 3 2 5 4 3 2 1
#include <iostream> using namespace std; int main() { int n, A[35][35], i, j; cin >> n; for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) { if(i + j <= n + 1){ // A[i][j] se afla deasupra diagonalei secundare sau pe aceasta A[i][j] = i + j - 1; } else{ // A[i][j] se afla sub diagonala secundara A[i][j] = 2*n - i - j + 1; } } } for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) cout << A[i][j] << ' '; cout << '\n'; } return 0; }