4221 - Bune
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
<syntaxhighlight lang="python" line>
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)
</syntaxhighlight>
Rezolvare ver. 2
<syntaxhighlight lang="python" line>
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"
</syntaxhighlight>