2646 - impartire

From Bitnami MediaWiki
Revision as of 17:30, 4 December 2023 by Gabii (talk | contribs) (Pagină nouă: = Cerința = Se dau <code>n</code> numere naturale, unde <code>n</code> este un număr par. Se grupează cele <code>n</code> numere în perechi şi pentru fiecare pereche de numere se află restul împărţirii unui număr din pereche la celălalt. Se cere să se afle valoarea minimă a sumei acestor resturi. = Date de intrare = Programul citește de la tastatură numărul <code>n</code>, iar apoi cele <code>n</code> numere naturale, separate prin spații. = Date de ieșire...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Se dau n numere naturale, unde n este un număr par. Se grupează cele n numere în perechi şi pentru fiecare pereche de numere se află restul împărţirii unui număr din pereche la celălalt. Se cere să se afle valoarea minimă a sumei acestor resturi.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran suma minimă a resturilor. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".

Restricții și precizări

  • 2 ≤ n ≤ 18
  • cele n numere citite vor fi mai mici decât 1.000

Exemplul 1

Intrare

4
6 5 3 4

Ieșire

1

Exemplul 2

Intrare

20

consola

Nu corespunde restricțiilor.

Rezolvare

<syntaxhighlight lang="python3" line="1"> def citeste_numar_intre_limite(mesaj, limita_inferioara, limita_superioara):

   while True:
       try:
           valoare = int(input(mesaj))
           if limita_inferioara <= valoare <= limita_superioara:
               return valoare
           else:
               print("Nu corespunde restricțiilor.")
       except ValueError:
           print("Nu corespunde restricțiilor.")
  1. Citirea numărului de elemente

n = citeste_numar_intre_limite("Introduceti numarul de elemente (n): ", 2, 18)

  1. Inițializarea listei pentru stocarea numerelor

numere = []

  1. Citirea elementelor și adăugarea lor în listă

for i in range(n):

   numar = citeste_numar_intre_limite(f"Introduceti numarul {i + 1}: ", 0, 999)
   numere.append(numar)
  1. Calculul sumei minime a resturilor

suma_minima = 0 for i in range(0, n, 2):

   if numere[i] < numere[i + 1]:
       rest = numere[i] % numere[i + 1]
   elif numere[i] > numere[i + 1]:
       rest = numere[i + 1] % numere[i]
   else:
       print("Nu corespunde restricțiilor.")
       exit(1)
   suma_minima += rest
  1. Afișarea rezultatului

print(f"Suma minima a resturilor este: {suma_minima}")

</syntaxhighlight>