3080- VerifNumar

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dă un șir de caractere. Sa se determine numărul scris cu cifrele existente în șirul dat. Să se afișeze numărul obținut și, pe linia următoare, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor.

Date de intrare[edit | edit source]

Programul citește de la tastatură un șir de caractere

Date de ieșire[edit | edit source]

Programul afișează pe ecran numărul determinat, iar pe linia următoare, separate prin câte un spațiu, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor, în ordinea din șir.

Restricţii şi precizări[edit | edit source]

  • șirul dat va avea cel mult 100 de caractere;
  • dacă șirul dat reprezintă un număr natural, programul va afișa numai mesajul CORECT;
  • dacă șirul dat nu conține nicio cifră, programul va afișa numai mesajul NaN;
  • dacă șirul nu conține alte cifre în afară de 0, numărul rezultat va fi reprezentat de ultima apariție în șir a cifrei 0

Exemplu 1[edit | edit source]

Intrare
00573a9 3ee
Iesire
Datele de intrare corespund restrictiilor impuse
57393
0 0 a e e


Exemplu 2[edit | edit source]

Intrare
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def extrage_numar_si_restul(șir):

   numar = 
   restul_caractere = []
   for caracter in șir:
       if caracter.isdigit() and caracter != '0':
           numar += caracter
       elif caracter != ' ':
           restul_caractere.append(caracter)
   return numar, restul_caractere

def main():

   # Citirea șirului de caractere de la tastatură
   sir = input()
   # Verifică dacă șirul respectă restricțiile
   if len(sir) > 100:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   if sir.isdigit():
       print("Datele de intrare corespund restrictiilor impuse")
       print("CORECT")
       return
   if not any(caracter.isdigit() for caracter in sir):
       print("Datele de intrare corespund restrictiilor impuse")
       print("NaN")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Extrage numărul și restul caracterelor
   numar, restul_caractere = extrage_numar_si_restul(sir)
   # Verifică condițiile și afișează rezultatul
   if numar:
       print(numar)
   else:
       print("0")
   if restul_caractere:
       print(' '.join(restul_caractere))

if __name__ == "__main__":

   main()

</syntaxhighlight>