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
3926 - Alternant 1
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/3926/alternant1] == Explicație == Spunem că un număr natural este alternant dacă cifrele pare alternează cu cele impare. De exemplu, numere alternante sunt 236, 6, 12345678. == Cerinţa == Se dă un număr natural. Să se verifice dacă este sau nu alternant. == Date de intrare == Programul citește de la tastatură numărul. == Date de ieşire == Programul va afișa pe ecran mesajul da dacă numarul este alternant sau mesajul nu dacă nu este alternant. == Restricții și precizări == * 0 ≤ numar ≤ 1.000.000.000.000.000 == Exemplu 1 == ; Intrare : 265 ; Ieșire : Numărul nu este alternant. == Exemplu 2 == ; Intrare : 8183 ; Ieșire : Numărul este alternant. == Rezolvare == === Rezolvare ver. 1 === <syntaxhighlight lang="python" line> def este_numar_natural(numar): try: numar_int = int(numar) if numar_int <= 0: return False # Returnăm False dacă numărul este mai mic sau egal cu 0 elif str(numar_int) != numar: return False # Returnăm False dacă conversia la întreg și apoi înapoi la șir nu dă același rezultat else: return True # Returnăm True dacă numărul este un număr natural valid except ValueError: return False # Returnăm False dacă conversia la întreg nu este posibilă def este_alternant(numar): cifre = str(numar) paritate = int(cifre[0]) % 2 # Paritatea primei cifre for i in range(1, len(cifre)): if int(cifre[i]) % 2 == paritate: return False # Returnăm False dacă găsim o cifră cu aceeași paritate ca și cifra anterioară paritate = 1 - paritate # Schimbăm paritatea între 0 și 1 return True # Returnăm True dacă toate cifrele sunt alternante în ceea ce privește paritatea if __name__ == "__main__": numar = input("Introduceți un număr natural: ") if not este_numar_natural(numar): print("Numărul introdus nu este valid.") else: if este_alternant(numar): print("Numărul este alternant.") else: print("Numărul nu este alternant.") print("Datele au fost introduse corect.") </syntaxhighlight> === Rezolvare ver. 2 === <syntaxhighlight lang="python" line> numar = input("Introduceți un număr natural: ") try: numar_int = int(numar) # Convertim numarul introdus într-un întreg if numar_int <= 0: print("Numărul introdus nu este un număr natural.") elif str(numar_int) != numar: print("Numărul introdus conține caractere nevalide.") else: cifre = str(numar_int) paritate = int(cifre[0]) % 2 # Paritatea primei cifre for i in range(1, len(cifre)): if int(cifre[i]) % 2 == paritate: print("Numărul nu este alternant.") break paritate = 1 - paritate # Schimbăm paritatea: 0 devine 1, 1 devine 0 else: print("Numărul este alternant.") print("Datele sunt introduse corect.") except ValueError: print("Numărul introdus nu este valid.") </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