0319 - Suma 35: Difference between revisions

From Bitnami MediaWiki
Mraa (talk | contribs)
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...
 
Mraa (talk | contribs)
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)))
  if n == 0:
        return
      print(" ".join(map(str, solutie)))
    if n >= 3:
      return
        descompunere_35(n - 3, solutie + [3])
  if n >= 3:
    if n >= 5:
      descompunere_35(n - 3, solutie + [3])
        descompunere_35(n - 5, solutie + [5])
  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
  # Citim numărul n din fișierul de intrare
    with open("suma35.out", "w") as g:
  with open("suma35.in", "r") as f:
        descompunere_35(n, [])
      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>