4056 - kresturi: Difference between revisions
Pagină nouă: == Cerinţa == Dându-se un șir cu '''n''' elemente numere naturale (cu indicii de la '''0'''), să se construiască pentru fiecare element din șir câte un tabel al claselor de resturi asociat prin înmulțire dacă indicele elementului este impar, respectiv prin adunare dacă indicele elementului este par. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi cele '''n''' numere naturale din șir, separate prin spații. == Date de ieşire ==... |
No edit summary |
||
Line 37: | Line 37: | ||
print() | print() | ||
n = 3 | if __name__ == "__main__": | ||
arr = [2, 4, 3] | n = 3 | ||
arr = [2, 4, 3] | |||
resturi(n, arr) | resturi(n, arr) | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 20:23, 30 October 2023
Cerinţa
Dându-se un șir cu n elemente numere naturale (cu indicii de la 0), să se construiască pentru fiecare element din șir câte un tabel al claselor de resturi asociat prin înmulțire dacă indicele elementului este impar, respectiv prin adunare dacă indicele elementului este par.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale din șir, separate prin spații.
Date de ieşire
Programul va afișa pe ecran în câte un tabel pentru fiecare element din șir, construit conform cerinței, în ordinea generării. Valorile din fiecare tabel se vor afișa linie cu linie, în cadrul fiecarei linii din tabel valorile fiind separate prin câte un spațiu.
Restricții și precizări
- 1 ≤ n ≤ 20
- cele n numere citite sunt numere naturale din intervalul închis [2,10]
Exemplu
- Intrare
- 3
- 2 4 3
- Ieșire
- 0 1
- 1 0
- 0 0 0 0
- 0 1 2 3
- 0 2 0 2
- 0 3 2 1
- 0 1 2
- 1 2 0
- 2 0 1
Explicație
S-au citit 3 numere. Se vor construi pe rând tabelele de resturi prin adunare pentru k=2, prin înmulțire pentru k=4 și prin adunare pentru k=3.
Rezolvare
<syntaxhighlight lang="python" line> def resturi(n, arr):
for i in range(n): k = arr[i] if i % 2 == 0: # adunare for j in range(k): print(' '.join(str((j + l) % k) for l in range(k))) else: # inmultire for j in range(k): print(' '.join(str((j * l) % k) for l in range(k))) print()
if __name__ == "__main__":
n = 3 arr = [2, 4, 3] resturi(n, arr)
</syntaxhighlight>