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
3251 - Asociat Par
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!
Sursă: [https://www.pbinfo.ro/probleme/3251/asociat-par] == Cerinţa == Se dau '''n''' numere naturale. Se numește număr par asociat unui număr x numărul obținut din cifrele pare ale lui x luate în ordinea în care apar ele în x. De exemplu, numărul 3246456 are ca număr par asociat pe 24646, iar 37030 pe 0. Dacă numărul nu are cifre pare, atunci el nu are număr par asociat. Numărul 3731 nu are număr par asociat. Se cere să se determine câte dintre cele '''n''' numere citite au numărul par asociat palindrom. Se numește palindom un număr care citit de la dreapta la stânga are aceeași valoare. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spații. == Date de ieşire == Dacă datele introduse sunt corecte, pe ecran se va afișa '''"Datele introduse sunt corecte."''', apoi programul va afișa numărul '''c''', reprezentând numărul de numere citite care au numărul asociat palindrom. În caz contrar, se va afișa pe ecran mesajul '''"Datele introduse nu sunt corecte."'''. == Restricții și precizări == * '''1 ⩽ n ⩽100 ''' * cele '''n''' numere citite vor fi mai mici decât 1.000.000.000 == Exemplu == ; Intrare : 5 : 45456 474 201102 2352345 234 ; Ieșire : Datele introduse sunt corecte. : 2 == Rezolvare == <syntaxhighlight lang="python" line> #3251 def este_palindrom(num): return str(num) == str(num)[::-1] def verifica_date(n, numere): for numar in numere: if numar >= 1000000000: return False return True def numere_cu_numar_par_asociat_palindrom(n, numere): citite = 0 for i in range(n): x = str(numere[i]) even_digits = [digit for digit in x if int(digit) % 2 == 0] even_num = int("".join(even_digits)) if even_digits else None if even_num and este_palindrom(even_num): citite += 1 return citite if __name__ == '__main__': n = int(input("Introduceți numărul de numere: ")) numere = list(map(int, input("Introduceți cele {} numere: ".format(n)).split())) if verifica_date(n, numere): print("Datele introduse sunt corecte.") print(numere_cu_numar_par_asociat_palindrom(n, numere)) else: print("Datele introduse nu sunt corecte.") </syntaxhighlight> == Explicație rezolvare == Funcția '''este_palindrom(num)''' primește un număr și returnează '''True''' dacă numărul este palindrom (adică poate fi citit în același fel în ambele direcții), altfel returnează '''False'''.<br><br>Funcția '''verifica_date(n, numere)''' primește un număr și o listă de numere și verifică dacă niciuna dintre numerele din listă nu este mai mare sau egală cu 1000000000. Dacă cel puțin un număr din listă este mai mare sau egal cu 1000000000, funcția returnează '''False'''. Dacă toate numerele sunt mai mici decât 1000000000, funcția returnează '''True'''.<br><br>Funcția '''numere_cu_numar_par_asociat_palindrom(n, numere)''' primește un număr și o listă de numere și returnează numărul de numere din listă care au un număr par asociat care este palindrom. Mai întâi, funcția transformă fiecare număr într-un șir de caractere, apoi extrage cifrele pare din fiecare șir și le transformă înapoi într-un număr. Dacă numărul obținut din cifrele pare este palindrom, acesta este numărat și funcția continuă la următorul număr din listă.<br><br>Funcția '''main()''' primește un număr și o listă de numere de la utilizator și apelează '''verifica_date(n, numere)''' pentru a verifica validitatea datelor introduse. Dacă datele sunt corecte, funcția afișează numărul de numere din listă care au un număr par asociat care este palindrom. Dacă datele nu sunt corecte, funcția afișează un mesaj de eroare.
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