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>