4221 - Bune

From Bitnami MediaWiki

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>