0319 - Suma 35: Difference between revisions
Pagină nouă: ==Cerinţa== Se dă un număr natural nenul n. Să se determine toate modalităţile distincte de descompunere a numărului n în sumă de 3 şi 5. ==Date de intrare== Fişierul de intrare suma35.in conţine pe prima linie numărul n. ==Date de ieşire== Fişierul de ieşire suma35.out va conţine, în ordine lexicografică, toate modalităţile de descompunere a lui n în suma de 3 şi 5. Elementele fiecărei descompuneri vor fi scrie pe câte o linie a fişierului şi sep... |
No edit summary |
||
Line 22: | Line 22: | ||
5 5 5 5 5 5 5 5 | 5 5 5 5 5 5 5 5 | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python3" line="1"> | |||
def descompunere_35(n, solutie): | def descompunere_35(n, solutie): | ||
if n == 0: | |||
print(" ".join(map(str, solutie))) | |||
return | |||
if n >= 3: | |||
descompunere_35(n - 3, solutie + [3]) | |||
if n >= 5: | |||
descompunere_35(n - 5, solutie + [5]) | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
# Citim numărul n din fișierul de intrare | |||
with open("suma35.in", "r") as f: | |||
n = int(f.readline().strip()) | |||
# Apelăm funcția de descompunere și afișăm rezultatul în fișierul de ieșire | |||
with open("suma35.out", "w") as g: | |||
descompunere_35(n, []) | |||
python suma35.py | python suma35.py | ||
</syntaxhighlight> |
Latest revision as of 17:46, 11 January 2024
Cerinţa[edit | edit source]
Se dă un număr natural nenul n. Să se determine toate modalităţile distincte de descompunere a numărului n în sumă de 3 şi 5.
Date de intrare[edit | edit source]
Fişierul de intrare suma35.in conţine pe prima linie numărul n.
Date de ieşire[edit | edit source]
Fişierul de ieşire suma35.out va conţine, în ordine lexicografică, toate modalităţile de descompunere a lui n în suma de 3 şi 5. Elementele fiecărei descompuneri vor fi scrie pe câte o linie a fişierului şi separate printr-un spaţiu.
Restricţii şi precizări[edit | edit source]
1 ≤ n ≤ 1000 pentru fiecare dintre valorile lui n folosite în fişierele de test există cel puţin o soluţie în fiecare descompunere elementele vor fi aranjate crescător ==Exemplu==: suma35.in
40 suma35.out
3 3 3 3 3 3 3 3 3 3 5 5 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def descompunere_35(n, solutie):
if n == 0: print(" ".join(map(str, solutie))) return if n >= 3: descompunere_35(n - 3, solutie + [3]) if n >= 5: descompunere_35(n - 5, solutie + [5])
if __name__ == "__main__":
# Citim numărul n din fișierul de intrare with open("suma35.in", "r") as f: n = int(f.readline().strip()) # Apelăm funcția de descompunere și afișăm rezultatul în fișierul de ieșire with open("suma35.out", "w") as g: descompunere_35(n, [])
python suma35.py </syntaxhighlight>