0185 - Cif Init: Difference between revisions

From Bitnami MediaWiki
Adrian (talk | contribs)
No edit summary
Adrian (talk | contribs)
No edit summary
 
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 "Datele de intrare nu corespund restricțiilor impuse".
Î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

Latest revision as of 11:15, 23 May 2023

Cerința[edit]

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]

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]

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]

  • 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]

Intrare
5
100
312
276
985
5021
Ieșire
Datele de intrare corespund restricțiilor impuse
12359


Exemplu 2[edit]

Intrare
0
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 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>