2750 - Gen Nr: Difference between revisions

From Bitnami MediaWiki
Line 19: Line 19:


== Explicație ==
== Explicație ==
1 și 2 sunt cele mai mici cifre din al doilea respectiv primul număr și astfel se formează 12, iar 9 și 4 sunt cele mai mari cifre din primul respectiv al doilea număr și astfel se formează 94
Cifrele 1 și 2 sunt cele mai mici cifre din al doilea respectiv primul număr și astfel se formează 12, iar 9 și 4 sunt cele mai mari cifre din primul respectiv al doilea număr și astfel se formează 94


== Rezolvare ==
== Rezolvare ==

Revision as of 18:34, 21 April 2023

Cerinţa

Se citesc 2 numere naturale, cu cel mult 12 cifre fiecare. Să se afișeze cel mai mic și cel mai mare număr având exact două cifre, format cu o cifră din primul număr și cu o cifră din al doilea.

Date de intrare

Programul citește de la tastatură cele 2 numere separate printr-un spațiu.

Date de ieşire

Programul va afișa pe ecran cel mai mic și cel mai mare număr de exact două cifre format cu o cifră din primul număr și cu o cifră din al doilea, separate printr-un spațiu.

Restricții și precizări

  • cele două numere citite vor fi mai mici decât 1.000.000.000.000

Exemplu

Intrare
293 412
Ieșire
Datele introduse corespund restricțiilor impuse.
12 94

Explicație

Cifrele 1 și 2 sunt cele mai mici cifre din al doilea respectiv primul număr și astfel se formează 12, iar 9 și 4 sunt cele mai mari cifre din primul respectiv al doilea număr și astfel se formează 94

Rezolvare

<syntaxhighlight lang="python" line>

  1. Citim cele două numere și verificăm dacă sunt numere naturale cu cel mult 12 cifre fiecare

while True:

   a = input("Introduceți primul număr: ")
   b = input("Introduceți al doilea număr: ")
   if not (a.isdigit() and b.isdigit() and len(a) <= 12 and len(b) <= 12):
       print("Numerele introduse sunt invalide. Vă rugăm să introduceți două numere naturale cu cel mult 12 cifre fiecare.")
   else:
       a = int(a)
       b = int(b)
       break
  1. Descompunem cele două numere în cifre

a_cifre = [int(c) for c in str(a)] b_cifre = [int(c) for c in str(b)]

  1. Inițializăm cel mai mic și cel mai mare număr cu 99

cel_mai_mic = 99 cel_mai_mare = 0

  1. Iterăm prin toate combinațiile posibile de cifre

for cifra_a in a_cifre:

   for cifra_b in b_cifre:
       # Combinațiile de cifre sunt reprezentate de numere întregi cu două cifre
       numar = cifra_a * 10 + cifra_b
       # Actualizăm cel mai mic și cel mai mare număr găsit până acum
       if numar < cel_mai_mic:
           cel_mai_mic = numar
       if numar > cel_mai_mare:
           cel_mai_mare = numar
  1. Afisăm cel mai mic și cel mai mare număr găsit

print("Cel mai mic număr cu două cifre format din cifrele celor două numere este:", cel_mai_mic) print("Cel mai mare număr cu două cifre format din cifrele celor două numere este:", cel_mai_mare)

</syntaxhighlight>