0559 - 5 Numere
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>