3275 - Nr Sum Cif Max

De la Universitas MediaWiki

Cerință

Se dau 3 numere naturale, fiecare având câte două cifre. Afișați-le pe acelea care au suma cifrelor maximă.

Date de intrare

Programul citește de la tastatură cele trei numere, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran, separate prin câte un spațiu, numerele care au suma cifrelor maximă. Dacă sunt mai multe, acestea se vor afișa în ordinea în care au fost introduse. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • se garantează că numerele introduse sunt de două cifre;

Exemplul 1

Intrare
17 22 26
Ieșire
Datele de intrare corespund restricțiilor impuse.
17 26

Rezolvare

Rezolvare ver. 1

def validare(numar1, numar2, numar3):
    # Convertim argumentele in numere intregi.
    numar1 = int(numar1)
    numar2 = int(numar2)
    numar3 = int(numar3)
    # Verificam daca fiecare numar se afla intre 10 si 99.
    if 9 < numar1 < 100 and 9 < numar2 < 100 and 9 < numar3 < 100:
        return True
    return False


def numere_cu_suma_maxima(numar1, numar2, numar3):
    # Calculam suma cifrelor fiecarui numar.
    suma1 = sum(int(c) for c in str(numar1))
    suma2 = sum(int(c) for c in str(numar2))
    suma3 = sum(int(c) for c in str(numar3))

    # Determinam suma maxima dintre cele trei numere.
    suma_maxima = max(suma1, suma2, suma3)

    # Initializam o lista goala pentru a adauga numerele cu suma maxima.
    numere = []
    if suma1 == suma_maxima:
        numere.append(numar1)
    if suma2 == suma_maxima:
        numere.append(numar2)
    if suma3 == suma_maxima:
        numere.append(numar3)

    return numere


if __name__ == "__main__":
    # Citim cele trei numere de la tastatura.
    numar1, numar2, numar3 = input("Introduceti cele 3 numere separate prin spatiu: ").split()
    # Calculam numerele cu suma maxima.
    numere = numere_cu_suma_maxima(numar1, numar2, numar3)
    # Verificam daca cele trei numere respecta conditiile impuse.
    if validare(numar1, numar2, numar3):
        print("Datele de intrare corespund restricțiilor impuse.")
        # Afisam numerele cu suma maxima, separate prin spatiu.
        print(*numere)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")