0185 - Cif Init

From Bitnami MediaWiki
Revision as of 11:15, 23 May 2023 by Adrian (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  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>