Va rog sa scrieti programul complet!!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main() {
int n, x; cin >> n >> x;
int a[n][n];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
if(i == 1 || j == 1)
a[i][j] = x;
else{
a[i][j] = a[i - 1][j] + a[i][j - 1];
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
Explicație:
Structura repetitiva for incepe de la i si j, ambele egale cu 1, pana la n, fiind o matrice patratica. Conditia de la if, "if(i == 1 || j == 1)" este pentru a verifica daca ne aflam pe prima coloana sau pe prima linie, in acest caz, a[i][j] va fi x.
Daca nu ne aflam pe prima linie sau pe prima coloana, a[i][j] va fi suma dintre elementul de pe aceeasi linie, dar pe coloana precedenta ( a[i][j - 1] ) si elementul de pe aceeasi coloana, dar pe linia precedenta ( a[i - 1][j] ). Aceste doua elemente reprezentand vecinii lui a[i][j].
Exemplu:
x = 2
a[1][1] = 2
a[1][2] = 2
a[2][1] = 2
a[2][2] = a[2][1] + a[1][2] = 2 + 2 = 4
Fact: Cand x = 1, matricea noastra este asemanatoare cu triunghiul lui Pascal :)