4221 - Bune

De la Universitas MediaWiki

Sursa: [1]

Enunț

Două numere sunt “bune” dacă cifra maximă a unui număr coincide cu cifra minimă din celălalt sau invers.

Cerinţa

Se dau două numere primul_numar și al_doilea_numar numere naturale. Verificați dacă cele două numere sunt “bune” și afișați cifra comună. Dacă cele două numere nu sunt bune, afișați NU.

Date de intrare

Programul citește de la tastatură două numere primul_numar și al_doilea_numar.

Date de ieşire

Programul va afișa pe ecran daca cele doua numere sunt "bune", precizand cifra comuna, iar in caz contrar va afisa "NU".

Restricții și precizări

  • cele doua numere primul_numar si al_doilea_numar vor fi mai mici decât 1.000.000.000

Exemplu

Intrare
123 3456
Ieșire
3
Intrare
123 67
Ieșire
NU

Rezolvare

Rezolvare ver.1

def verificare_cifra_comuna(primul_numar, al_doilea_numar):
    maxim_primul_numar = max(str(primul_numar))  # Obținem cifra maximă din primul număr
    maxim_al_doilea_numar = max(str(al_doilea_numar))  # Obținem cifra maximă din al doilea număr
    minim_primul_numar = min(str(primul_numar))  # Obținem cifra minimă din primul număr
    minim_al_doilea_numar = min(str(al_doilea_numar))  # Obținem cifra minimă din al doilea număr

    if maxim_primul_numar == minim_al_doilea_numar:  # Verificăm dacă cifra maximă din primul număr este egală cu cifra minimă din al doilea număr
        return f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {maxim_primul_numar}."
    elif minim_primul_numar == maxim_al_doilea_numar:  # Verificăm dacă cifra minimă din primul număr este egală cu cifra maximă din al doilea număr
        return f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {minim_primul_numar}."
    else:
        return "NU"

if __name__ == '__main__':
    primul_numar = int(input("Introduceți primul număr: "))
    al_doilea_numar = int(input("Introduceți al doilea număr: "))

    rezultat = verificare_cifra_comuna(primul_numar, al_doilea_numar)  # Apelăm funcția pentru a verifica cifra comună

    print(rezultat)

Rezolvare ver. 2

primul_numar = int(input("Introduceți primul număr: "))  # Citim primul număr de la tastatură
al_doilea_numar = int(input("Introduceți al doilea număr: "))  # Citim al doilea număr de la tastatură

maxim_primul_numar = max(str(primul_numar))  # Obținem cifra maximă din primul număr
maxim_al_doilea_numar = max(str(al_doilea_numar))  # Obținem cifra maximă din al doilea număr
minim_primul_numar = min(str(primul_numar))  # Obținem cifra minimă din primul număr
minim_al_doilea_numar = min(str(al_doilea_numar))  # Obținem cifra minimă din al doilea număr

if maxim_primul_numar == minim_al_doilea_numar:  # Verificăm dacă cifra maximă din primul număr este egală cu cifra minimă din al doilea număr
    print(f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {maxim_primul_numar}.")
elif minim_primul_numar == maxim_al_doilea_numar:  # Verificăm dacă cifra minimă din primul număr este egală cu cifra maximă din al doilea număr
    print(f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {minim_primul_numar}.")
else:
    print("NU")  # Dacă nu există o cifră comună, afișăm mesajul "NU"