2750 - Gen Nr: Difference between revisions
Line 19: | Line 19: | ||
== Explicație == | == 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 == | == 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>
- 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
- Descompunem cele două numere în cifre
a_cifre = [int(c) for c in str(a)] b_cifre = [int(c) for c in str(b)]
- Inițializăm cel mai mic și cel mai mare număr cu 99
cel_mai_mic = 99 cel_mai_mare = 0
- 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
- 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>