4212 - Inc Cif Pare: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == 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 == Programul citește de la tastatură numărul '''n'''. == Date de ieşire == Programul va afișa pe ecran numărul obținut prin creșterea cu '''1''' a cifrelor pare ale lui '''n'''. == Restricții și preci...
 
No edit summary
Line 7: Line 7:
== Restricții și precizări ==
== Restricții și precizări ==
* 0 ⩽ n ⩽ 1.000.000.000
* 0 ⩽ n ⩽ 1.000.000.000
== Exemplu ==
== Exemplul 1 ==
; Intrare
; Intrare
; 1234
: 1234
; Ieșire
; Ieșire
; 1335
: Datele introduse corespund restricțiilor impuse.
: 1335
== Exemplul 2 ==
; Intrare
: 13n2
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# Definim funcția pentru cifrele pare
# 4212 Inc Cif Pare
def problema_4212(n):
def valideaza_numar(numar):
     n = str(n)
    """Verifică dacă datele de intrare sunt valide."""
    try:
        # Încercăm să convertim datele de intrare la int
        numar = int(numar)
        # Dacă conversia a reușit, afișăm un mesaj de succes
        print("Datele introduse corespund restricțiilor impuse.")
        return numar
    except ValueError:
        # Dacă conversia a eșuat, afișăm un mesaj de eroare
        print("Datele de intrare nu corespund restricțiilor impuse.")
        return None
 
 
def problema_4212(numar):
     """Rezolvă problema 4212."""
    # Convertim numărul la string pentru a putea itera prin cifre
    numar = str(numar)
     rezultat = ''
     rezultat = ''
     for cifra in n:
     for cifra in numar:
         # Verificăm dacă cifra este pară
         # Verificăm dacă cifra este pară
         if int(cifra) % 2 == 0:
         if int(cifra) % 2 == 0:
             #Dacă cifra este pară, o creștem cu 1 și o adăugăm la rezultat
             # Dacă cifra este pară, o creștem cu 1 și o adăugăm la rezultat
             rezultat += str(int(cifra) + 1)
             rezultat += str(int(cifra) + 1)
         else:
         else:
             # Dacă cifra este pară, o creștem cu 1 și o adăugăm la rezultat
             # Dacă cifra este impară, o adăugăm la rezultat
             rezultat += cifra
             rezultat += cifra
     # Convertim rezultatul înapoi în număr și îl returnăm
     # Convertim rezultatul înapoi în număr și îl returnăm
     return int(rezultat)
     return int(rezultat)


# Verificăm codul cu cele doua numere
 
# Testăm problema
if __name__ == "__main__":
if __name__ == "__main__":
     n = 1234
    # Citim numărul de la utilizator
     n1 = 135
     n = input()
     print(problema_4212(n))
     # Validăm numărul
     print(problema_4212(n1))
     n = valideaza_numar(n)
     # Dacă numărul este valid, rezolvăm problema
    if n is not None:
        print(problema_4212(n))


</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:44, 9 November 2023

Cerinţa

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

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

Date de ieşire

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

  • 0 ⩽ n ⩽ 1.000.000.000

Exemplul 1

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

Exemplul 2

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

Rezolvare

<syntaxhighlight lang="python" line>

  1. 4212 Inc Cif Pare

def valideaza_numar(numar):

   """Verifică dacă datele de intrare sunt valide."""
   try:
       # Încercăm să convertim datele de intrare la int
       numar = int(numar)
       # Dacă conversia a reușit, afișăm un mesaj de succes
       print("Datele introduse corespund restricțiilor impuse.")
       return numar
   except ValueError:
       # Dacă conversia a eșuat, afișăm un mesaj de eroare
       print("Datele de intrare nu corespund restricțiilor impuse.")
       return None


def problema_4212(numar):

   """Rezolvă problema 4212."""
   # 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. Testăm problema

if __name__ == "__main__":

   # Citim numărul de la utilizator
   n = input()
   # Validăm numărul
   n = valideaza_numar(n)
   # Dacă numărul este valid, rezolvăm problema
   if n is not None:
       print(problema_4212(n))

</syntaxhighlight>