4212 - Inc Cif Pare: Difference between revisions
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 | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: 1234 | |||
; Ieșire | ; Ieșire | ||
; | : 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> | ||
# | # 4212 Inc Cif Pare | ||
def problema_4212( | 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 = '' | rezultat = '' | ||
for cifra in | 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 | # 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) | ||
# | |||
# Testăm problema | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = | # Citim numărul de la utilizator | ||
n = input() | |||
# Validăm numărul | |||
print(problema_4212( | 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>
- 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)
- 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>