0185 - Cif Init: Difference between revisions
Pagină nouă: == 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... |
No edit summary |
||
Line 44: | Line 44: | ||
def cifinit(num_numere, numere): | 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 = [] | primele_cifre = [] | ||
Line 57: | Line 61: | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
# Citim de la tastatura numerele cerute | |||
num_numere = int(input()) | num_numere = int(input()) | ||
numere = [] | numere = [] | ||
Line 65: | Line 70: | ||
numere.append(numar) | numere.append(numar) | ||
# Verificam daca datele introduse sunt valide | |||
# daca nu afisam mesajul corespunsador | |||
try: | try: | ||
validare(num_numere, numere) | validare(num_numere, numere) |
Revision as of 22:24, 21 May 2023
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):
# 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>