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>