Informatică, întrebare adresată de anthanasscofield, 9 ani în urmă

v61 Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2 construieşte în memorie o matrice pătrată cu n linii şi n coloane în care ultima linie conţine,
în ordine, numerele 1,2,3,..,n, elementele situate deasupra diagonalei principale sunt
nule şi oricare alt element este obţinut prin însumarea elementelor vecine cu el, aflate pe
linia imediat următoare, pe aceeaşi coloană cu el sau pe una din coloanele alăturate.
Programul va afişa pe ecran matricea obţinută pe n linii, elementele fiecărei linii fiind
separate prin câte un spaţiu.
Exemplu: pentru n=4 pe ecran se va afişa:

27 0 0 0
9 18 0 0
3 6 9 0
1 2 3 4

Răspunsuri la întrebare

Răspuns de andrei750238
3

Răspuns:

#include <iostream>

#define nmax 17

using namespace std;

int main()

{

   int a[nmax][nmax] = {0};

   int i, j, n;

   cin >> n;

   // Scriere ultima linie

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

       a[n][j] = j;

   // Scriere linii de jos in sus

   for (i = n - 1; i >= 1; i--)

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

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

   // Afisare matrice

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

   {

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

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

       cout << "\n";

   }

}

Explicație:

Punem elementele precizate pe ultima linie si construim matricea de jos in sus.

Anexe:
Alte întrebări interesante