0559 - 5 Numere

From Bitnami MediaWiki
Revision as of 19:52, 19 March 2023 by Tuca Liviu Razvan (talk | contribs) (Pagină nouă: ==Cerință== Se dau '''5 numere''' distincte. Să se determine '''suma celor mai mari 3''' dintre ele. ==Date de intrare== Programul citește de la tastatură 5 numere naturale. ==Date de ieșire== Programul va afișa pe ecran numărul cerut. ==Restricții de precizări== Cele 5 numere naturale sunt distincte, cuprinse între 1 și 10000, inclusiv ==Exemplul 1== ;Intrare :1 5 2 3 100 ;Ieșire :108 ==Rezolvare== ===Rezolvare ver. 1=== <syntaxhighlight lang="python" li...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință

Se dau 5 numere distincte. Să se determine suma celor mai mari 3 dintre ele.

Date de intrare

Programul citește de la tastatură 5 numere naturale.

Date de ieșire

Programul va afișa pe ecran numărul cerut.

Restricții de precizări

Cele 5 numere naturale sunt distincte, cuprinse între 1 și 10000, inclusiv

Exemplul 1

Intrare
1 5 2 3 100
Ieșire
108

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(numar1, numar2, numar3, numar4, numar5):

   inputs = [numar1, numar2, numar3, numar4, numar5]
   for i in range(5):
       if not isinstance(inputs[i], int):
           return False
       if not (1 <= inputs[i] <= 10000):
           return False
       if inputs[i] in inputs[:i] + inputs[i + 1:]:
           return False
   return True


def suma_maxima(numar1, numar2, numar3, numar4, numar5):

   maxi1 = 0
   if numar1 >= numar2 and numar1 >= numar3 and numar1 >= numar4 and numar1 >= numar5:
       maxi1 = numar1
       numar1 = 0
   elif numar2 >= numar1 and numar2 >= numar3 and numar2 >= numar4 and numar2 >= numar5:
       maxi1 = numar2
       numar2 = 0
   elif numar3 >= numar1 and numar3 >= numar2 and numar3 >= numar4 and numar3 >= numar5:
       maxi1 = numar3
       numar3 = 0
   elif numar4 >= numar1 and numar4 >= numar2 and numar4 >= numar3 and numar4 >= numar5:
       maxi1 = numar4
       numar4 = 0
   else:
       maxi1 = numar5
       numar5 = 0
   maxi2 = 0
   if numar1 >= numar2 and numar1 >= numar3 and numar1 >= numar4 and numar1 >= numar5:
       maxi2 = numar1
       numar1 = 0
   elif numar2 >= numar1 and numar2 >= numar3 and numar2 >= numar4 and numar2 >= numar5:
       maxi2 = numar2
       numar2 = 0
   elif numar3 >= numar1 and numar3 >= numar2 and numar3 >= numar4 and numar3 >= numar5:
       maxi2 = numar3
       numar3 = 0
   elif numar4 >= numar1 and numar4 >= numar2 and numar4 >= numar3 and numar4 >= numar5:
       maxi2 = numar4
       numar4 = 0
   else:
       maxi2 = numar5
       numar5 = 0
   maxi3 = 0
   if numar1 >= numar2 and numar1 >= numar3 and numar1 >= numar4 and numar1 >= numar5:
       maxi3 = numar1
       numar1 = 0
   elif numar2 >= numar1 and numar2 >= numar3 and numar2 >= numar4 and numar2 >= numar5:
       maxi3 = numar2
       numar2 = 0
   elif numar3 >= numar1 and numar3 >= numar2 and numar3 >= numar4 and numar3 >= numar5:
       maxi3 = numar3
       numar3 = 0
   elif numar4 >= numar1 and numar4 >= numar2 and numar4 >= numar3 and numar4 >= numar5:
       maxi3 = numar4
       numar4 = 0
   else:
       maxi3 = numar5
       numar5 = 0
   print(maxi1 + maxi2 + maxi3)


if __name__ == '__main__':

   numar1, numar2, numar3, numar4, numar5 = map(int, input().split())
   if validare(numar1, numar2, numar3, numar4, numar5):
       print("Datele de intrare corespund restricțiilor impuse.")
       suma_maxima(numar1, numar2, numar3, numar4, numar5)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>