4221 - Bune: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/4221/bune] | |||
== Enunț == | |||
Două numere sunt “bune” dacă cifra maximă a unui număr coincide cu cifra minimă din celălalt sau invers. | |||
== Cerinţa == | == 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 == | == Date de intrare == | ||
Programul citește de la tastatură două numere primul_numar și al_doilea_numar. | Programul citește de la tastatură două numere primul_numar și al_doilea_numar. | ||
== Date de ieşire == | == 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". | 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 == | == Restricții și precizări == | ||
* cele doua numere primul_numar si al_doilea_numar vor fi mai mici decât 1.000.000.000 | * cele doua numere primul_numar si al_doilea_numar vor fi mai mici decât 1.000.000.000 | ||
Line 19: | Line 26: | ||
: NU | : NU | ||
== Rezolvare == | ==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> | <syntaxhighlight lang="python" line> | ||
primul_numar = int(input("Introduceți primul număr: ")) | 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: ")) | 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)) | maxim_primul_numar = max(str(primul_numar)) # Obținem cifra maximă din primul număr | ||
maxim_al_doilea_numar = max(str(al_doilea_numar)) | 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)) | minim_primul_numar = min(str(primul_numar)) # Obținem cifra minimă din primul număr | ||
minim_al_doilea_numar = min(str(al_doilea_numar)) | 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: | 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}.") | print(f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {maxim_primul_numar}.") | ||
elif minim_primul_numar == maxim_al_doilea_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}.") | print(f"{primul_numar} și {al_doilea_numar} sunt 'bune', cifra comună fiind {minim_primul_numar}.") | ||
else: | else: | ||
print("NU") | print("NU") # Dacă nu există o cifră comună, afișăm mesajul "NU" | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 10:23, 12 May 2023
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>