3417 - Gen Mat 28

From Bitnami MediaWiki
Revision as of 15:56, 11 December 2023 by Raul (talk | contribs) (Pagină nouă: = Cerința = Scrieți un program care citește de la tastatură un număr natural <code>n</code> și construiește o matrice cu <code>n</code> linii și <code>n</code> coloane ale cărei elemente vor primi valori dupa cum urmează: * În colțul din stânga sus, de coorodnate <code>1 1</code>, va fi <code>1</code>. * În pozițiile adiacente, de coordonate <code>1 2</code> și <code>2 1</code>, va fi <code>n</code>. * În pozițiile adiacente, de coordonate <code>1 3</code>...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Scrieți un program care citește de la tastatură un număr natural n și construiește o matrice cu n linii și n coloane ale cărei elemente vor primi valori dupa cum urmează:

  • În colțul din stânga sus, de coorodnate 1 1, va fi 1.
  • În pozițiile adiacente, de coordonate 1 2 și 2 1, va fi n.
  • În pozițiile adiacente, de coordonate 1 3, 2 2 și 3 1, va fi 2.
  • În pozițiile adiacente, de coordonate 1 4, 2 3, 3 2 și 4 1, va fi n-1.
  • Și așa mai departe…
  • În penultimele poziții, de coordonate n-1 n și n n-1, va fi n.
  • În ultima poziție, de coordonate n n, va fi 1.

Date de intrare

Programul citește de la tastatură numarul 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

  • 3 ≤ n ≤ 30

Exemplu

Intrare

5

Ieșire

1 5 2 4 3
5 2 4 3 4
2 4 3 4 2
4 3 4 2 5
3 4 2 5 1

Explicație

S-a citit 5 și se afisează o matrice de 5 linii și 5 coloane, unde 1 se află in colțul din stânga sus, apoi în pozițiile învecinate se află 5, apoi 2 și tot așa până se va completa matricea.

Încărcare soluție

Lipește codul aici

1

​n = int(input())
v = [0] * 61
lc = 0
st = 1
dr = n
for i in range(1, 2*n+1):
    if i % 2 == 1:
        if v[i-1] != st:
            lc += 1
            v[lc] = st
            st += 1
        else:
            st += 1
    else:
        if v[i-1] != dr:
            lc += 1
            v[lc] = dr
            dr -= 1
        else:
            dr -= 1
for i in range(1, n+1):
    for j in range(1, n+1):
        print(v[i+j-1], end=" ")
    print()