4212 - Inc Cif Pare: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 13: Line 13:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 1335
: 1335
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
Line 18: Line 19:
; Ieșire
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
: Datele de intrare nu corespund restricțiilor impuse.
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 4212 Inc Cif Pare
# 4212 Inc Cif Pare
def valideaza_numar(numar):
 
     """Verifică dacă datele de intrare sunt valide."""
# Definim funcția de verificare a valorii n
     try:
 
        # Încercăm să convertim datele de intrare la int
 
        numar = int(numar)
def verificare(n_val):
         # Dacă conversia a reușit, afișăm un mesaj de succes
     # Verificăm dacă n respectă restricțiile problemei
        print("Datele introduse corespund restricțiilor impuse.")
     if 0 <= n_val <= 1000000000:
         return numar
         # Dacă valoarea este validă, returnăm valoarea
     except ValueError:
         return n_val
         # Dacă conversia a eșuat, afișăm un mesaj de eroare
     else:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         # Dacă valoarea nu este validă, ridicăm o excepție
        return None
         raise ValueError




def problema_4212(numar):
def cifre_pare(numar):
    """Rezolvă problema 4212."""
     # Convertim numărul la string pentru a putea itera prin cifre
     # Convertim numărul la string pentru a putea itera prin cifre
     numar = str(numar)
     numar = str(numar)
Line 52: Line 53:




# Testăm problema
# Verificăm dacă acest script este rulat direct
if __name__ == "__main__":
if __name__ == "__main__":
     # Citim numărul de la utilizator
     try:
    n = input()
        # Citim numărul de la utilizator
    # Validăm numărul
        n = input("Introduceti un numar: ")
    n = valideaza_numar(n)
        # Validăm numărul
    # Dacă numărul este valid, rezolvăm problema
        n = verificare(int(n))
     if n is not None:
        # Dacă numărul este valid, rezolvăm problema
         print(problema_4212(n))
        print("Datele introduse corespund restricțiilor impuse.")
        print(cifre_pare(n))
     except ValueError:
        # Dacă numărul nu este valid, afișăm un mesaj de eroare
        print("Datele introduse nu corespund restricțiilor impuse.")
    except Exception as e:
        # Dacă se produce o excepție, o afișăm
         print(str(e))


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 19:11, 10 November 2023

Cerinţa[edit | edit source]

Să se scrie un program care citește un număr natural n și care crește cu 1 valoarea cifrelor pare. De exemplu, dacă n=1234 atunci se va obține numărul 1335, iar dacă n=135 atunci numărul rămâne neschimbat.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran numărul obținut prin creșterea cu 1 a cifrelor pare ale lui n.

Restricții și precizări[edit | edit source]

  • 0 ⩽ n ⩽ 1.000.000.000

Exemplul 1[edit | edit source]

Intrare
1234
Ieșire
Datele introduse corespund restricțiilor impuse.
1335


Exemplul 2[edit | edit source]

Intrare
13n2
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 4212 Inc Cif Pare
  1. Definim funcția de verificare a valorii n


def verificare(n_val):

   # Verificăm dacă n respectă restricțiile problemei
   if 0 <= n_val <= 1000000000:
       # Dacă valoarea este validă, returnăm valoarea
       return n_val
   else:
       # Dacă valoarea nu este validă, ridicăm o excepție
       raise ValueError


def cifre_pare(numar):

   # Convertim numărul la string pentru a putea itera prin cifre
   numar = str(numar)
   rezultat = 
   for cifra in numar:
       # Verificăm dacă cifra este pară
       if int(cifra) % 2 == 0:
           # Dacă cifra este pară, o creștem cu 1 și o adăugăm la rezultat
           rezultat += str(int(cifra) + 1)
       else:
           # Dacă cifra este impară, o adăugăm la rezultat
           rezultat += cifra
   # Convertim rezultatul înapoi în număr și îl returnăm
   return int(rezultat)


  1. Verificăm dacă acest script este rulat direct

if __name__ == "__main__":

   try:
       # Citim numărul de la utilizator
       n = input("Introduceti un numar: ")
       # Validăm numărul
       n = verificare(int(n))
       # Dacă numărul este valid, rezolvăm problema
       print("Datele introduse corespund restricțiilor impuse.")
       print(cifre_pare(n))
   except ValueError:
       # Dacă numărul nu este valid, afișăm un mesaj de eroare
       print("Datele introduse nu corespund restricțiilor impuse.")
   except Exception as e:
       # Dacă se produce o excepție, o afișăm
       print(str(e))

</syntaxhighlight>