Informatică, întrebare adresată de padure, 8 ani în urmă

Scrieti programul C++ care citeste de la tastatura o valuare naturala n(2<=n<=24), construieste si afiseaza pe ecran o matrice a cu n linii si n coloane, simetrica fata de diagonala secundara. Elemnetele matricii situate deasupra diagonalei secundare, inclusiv diagonala secundara, sunt toate numerele naturale de la 1 la n*(n+1)/2. Elementele fiecarei linii de la stanga la dreapta si ale fiecarei coloane, de sus in jos situate deasupra diagonalei secunadare, inclusiv cele de pe diagonala secundara sunt in ordine strict crescatoare ca in exemplu. Matricea se va afisa pe ecran cate o linie a matricei pe o linie a ecranului, elementele fiecarei linii fiind separate intre ele prin cate un spatiu.
Exemplu: Pentru n=4 se afiseaza:
1 3 6 10
2 5 9 6
4 8 5 3
7 4 2 1

Răspunsuri la întrebare

Răspuns de Daniel4761
5

#include <iostream>

using namespace std;

int main()

{

int a[25][25], n, i, j, x=1, y=1;

cout<<"n="; cin>>n;

for(i=1;i<=n;i++){

 a[i][1]=x; a[n][n-i+1]=x;

 x=x+y; y++;

 for(j=i-1;j>=1;j--){

  a[j][i-j+1]=a[j+1][i-j]+1;

  a[n-i+j][n-j+1]=a[j][i-j+1];

 }

}

for(i=1;i<=n;i++){

 for(j=1;j<=n;j++)

  cout<<a[i][j]<<' ';

 cout<<'\n';

}

return 0;

}

Alte întrebări interesante