0185 - Cif Init
Cerința
Se citește de la tastură un număr natural num_numere, apoi num_numere numere naturale. Să se afişeze cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.
Date de intrare
Programul citește de la tastatură numărul num_numere, iar apoi cele num_numere numere naturale, separate prin spaţii.
Date de ieșire
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul numar_minim, cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse".
Restricții și precizări
- 0 < num_numere < 1000
- cele num_numere numere citite vor fi mai mari decât 0 și mai mici decât 1000000000
Exemplu 1
- Intrare
- 5
- 100
- 312
- 276
- 985
- 5021
- Ieșire
- Datele de intrare corespund restricțiilor impuse
- 12359
Exemplu 2
- Intrare
- 0
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line>
- 0185 - CifInit
def validare(num_numere, numere):
# Daca datele sunt invalide v-om face raise la eroarea ValueError
if (not (num_numere > 0 and num_numere < 1000)): raise ValueError
for numar in numere: if (not (numar > 0 and numar < 1000000000)): raise ValueError
def cifinit(num_numere, numere):
primele_cifre = []
for numar in numere: primele_cifre.append(str(numar)[0])
primele_cifre.sort()
numar_minim = int(.join(primele_cifre))
print(numar_minim)
if __name__ == '__main__':
num_numere = int(input()) numere = []
for i in range(num_numere): numar = int(input())
numere.append(numar)
try: validare(num_numere, numere) except ValueError: print("Nu au fost respectate cerintele impuse") else: print("Datele de intrare corespund restricțiilor impuse")
cifinit(num_numere, numere)
</syntaxhighlight>