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 "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
<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):
# 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)
</syntaxhighlight>