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 |
||
(One intermediate revision by the same user not shown) | |||
Line 7: | Line 7: | ||
Î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 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 " | Î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 == | == Restricții și precizări == | ||
* 0 < '''num_numere''' < 1000 | * 0 < '''num_numere''' < 1000 | ||
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) |
Latest revision as of 11:15, 23 May 2023
Cerința[edit | edit source]
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[edit | edit source]
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[edit | edit source]
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[edit | edit source]
- 0 < num_numere < 1000
- cele num_numere numere citite vor fi mai mari decât 0 și mai mici decât 1000000000
Exemplu 1[edit | edit source]
- Intrare
- 5
- 100
- 312
- 276
- 985
- 5021
- Ieșire
- Datele de intrare corespund restricțiilor impuse
- 12359
Exemplu 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare[edit | edit source]
<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>