0185 - Cif Init
De la Universitas MediaWiki
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 "Nu au fost respectate cerintele 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
# 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):
# Pentru fiecare dintre cele n numere vom determina prima cifra.
# Vom memora aceste cifre intr-un vector pe care il vom sorta crescator.
# Numarul dorit se obtine prin scrierea elementelor acestui vector.
# Putem observa ca toate elementele acestui vector sunt nenule.
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__':
# Citim de la tastatura numerele cerute
num_numere = int(input())
numere = []
for i in range(num_numere):
numar = int(input())
numere.append(numar)
# Verificam daca datele introduse sunt valide
# daca nu afisam mesajul corespunsador
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)