4221 - Bune
Sursa: [1]
Enunț[edit | edit source]
Două numere sunt “bune” dacă cifra maximă a unui număr coincide cu cifra minimă din celălalt sau invers.
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură două numere primul_numar și al_doilea_numar.
Date de ieşire[edit | edit source]
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[edit | edit source]
- cele doua numere primul_numar si al_doilea_numar vor fi mai mici decât 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 123 3456
- Ieșire
- 3
- Intrare
- 123 67
- Ieșire
- NU
Rezolvare[edit | edit source]
Rezolvare ver.1[edit | edit source]
<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[edit | edit source]
<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>