4221 - Bune

From Bitnami MediaWiki
Revision as of 10:23, 12 May 2023 by Petras.du.ioana (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>