Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
4232 - Cif Sim
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
sursa: [https://www.pbinfo.ro/probleme/4232/cif-sim] == Cerinţa == Pentru un numar dat de la tastatura, afișați mesajul DA dacă toate cifrele sale egal depărtate de extremități au suma egală cu 9, sau afișați NU dacă există cel puțin o pereche care nu are suma 9. === Explicație === Pentru un număr natural dat vrem să verificăm dacă toate cifrele sale egal depărtate de extremități au suma egală cu 9. De exemplu, n = 314586 are perechile de cifre egal depărtate de extremități (3, 6), (1,8) și (4,5). Se obțin sumele 3+6=9, 1+8=9 și 4+5=9. Numărul 386 are perechile (3,6) și (8,8) pentru că având număr impar de cifre, atunci 8 are pereche pe el însuși. == Date de intrare == Programul citește de la tastatură numărul. == Date de ieşire == Programul va verifica perechile de cifre egale depărtate de extremități și va afișa "DA" sau "NU" în consecință. == Restricții și precizări == * 1 ≤ numar ≤ 10^18 == Exemplu 1 == ; Intrare : 314586 ; Ieșire : DA == Exemplu 2 == ; Intrare : 386 ; Ieșire : NU == Rezolvare == === Rezolvare ver. 1 === <syntaxhighlight lang="python" line> def valideaza_intrare(): """ Funcție pentru validarea datelor de intrare. Solicită introducerea unui număr natural mai mare sau egal cu 10. Ridică o excepție de tip ValueError dacă numărul introdus nu respectă condițiile. """ while True: try: numar = int(input("Introduceți un număr natural mai mare sau egal cu 10: ")) if numar < 10: raise ValueError("Numărul introdus trebuie să fie mai mare sau egal cu 10.") return numar except ValueError as e: print(f"Eroare: {e}") def verifica_perechi(numar): """ Funcție pentru verificarea perechilor de cifre. Primește un număr și verifică dacă toate perechile de cifre egal depărtate de extremități au suma 9. Returnează True dacă condiția este îndeplinită și False în caz contrar. """ # Convertim numărul la o listă de cifre cifre = [int(c) for c in str(numar)] # Iterăm prin jumătatea listei de cifre for i in range(len(cifre) // 2): # Verificăm dacă suma celor două cifre de la extremități este 9 if cifre[i] + cifre[-i-1] != 9: # Dacă nu, numărul nu îndeplinește condiția cerută, deci returnăm False return False # Dacă am verificat toate perechile și toate îndeplinesc condiția, returnăm True return True if __name__ == "__main__": # Validăm numărul introdus de utilizator numar = valideaza_intrare() # Verificăm perechile de cifre în număr if verifica_perechi(numar): # Dacă toate perechile sunt corecte, afișăm mesajul corespunzător print("Datele sunt introduse corect.") print("DA - Toate perechile de cifre egal depărtate de extremități au suma 9.") else: # Dacă cel puțin o pereche nu este corectă, afișăm mesajul corespunzător print("NU - Cel puțin una dintre perechi nu are suma 9.") </syntaxhighlight> === Rezolvare ver. 2 === <syntaxhighlight lang="python" line> # Citim numărul de la tastatură și validăm datele de intrare while True: try: numar = int(input("Introduceți un număr natural mai mare sau egal cu 10: ")) if numar < 10: raise ValueError("Numărul introdus trebuie să fie mai mare sau egal cu 10.") break except ValueError as e: print(f"Eroare: {e}") # Convertim numărul într-o listă de cifre cifre = [int(c) for c in str(numar)] # Verificăm condiția pentru perechile de cifre if len(cifre) % 2 == 0: for i in range(0, len(cifre), 2): if cifre[i] + cifre[i+1] != 9: print("NU - Cel puțin una dintre perechi nu are suma 9.") break else: print("DA - Toate perechile de cifre egal depărtate de extremități au suma 9.") else: for i in range(0, len(cifre)-1, 2): if cifre[i] + cifre[i+1] != 9: print("NU - Cel puțin una dintre perechi nu are suma 9.") break else: print("Datele sunt introduse corect.") print("DA - Toate perechile de cifre egal depărtate de extremități au suma 9.") </syntaxhighlight>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width