4212 - Inc Cif Pare: Difference between revisions
No edit summary |
No edit summary |
||
Line 21: | Line 21: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 4212 Inc Cif Pare | # 4212 Inc Cif Pare | ||
def | |||
# 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ă | # Dacă valoarea este validă, returnăm valoarea | ||
return n_val | |||
return | else: | ||
# Dacă valoarea nu este validă, ridicăm o excepție | |||
# Dacă | raise ValueError | ||
def | def cifre_pare(numar): | ||
# 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 49: | ||
# | # Verificăm dacă acest script este rulat direct (nu este importat ca modul) | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
# Citim numărul de la utilizator | 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( | 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> |
Revision as of 17:10, 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
- 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)
- Verificăm dacă acest script este rulat direct (nu este importat ca modul)
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>