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
4320 - Cifre 22
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/4320/cifre22] == Cerinţa == Se dă un șir cu '''n''' numere naturale. Să se determine numărul din șir care are asociatul par maxim. Dacă există mai multe numere cu asociat par maxim se va determina numărul mai mare. == 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 sunt introduse corect, pe ecran se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa pe ecran numărul din șir care are asociatul par maxim. În caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect."'''. == Restricții și precizări == * '''n''' ⩽ 100 * cele '''n''' numere sunt sunt mai mici decât <math>10^{9}</math> == Exemplu == ; Intrare : 5 : 19 410 1470 1256 70 ; Ieșire : Datele sunt introduse corect. : 1470 == Explicație == Asociatul par al lui 19 este 0. Asociatul par al lui 410 este 40. Asociatul par al lui 1470 este 40. Asociatul par al lui 1256 este 26. Asociatul par al lui 70 este 0. Valoarea maximă a asociatului par este 40. Există două numere care îl au pe 40 ca asociat par, dintre care este mai mare 1470. == Rezolvare == <syntaxhighlight lang="python" line> #4320 def get_asociat_par(numar): cifre = [int(c) for c in str(numar)] # Creează o listă cu cifrele numărului cifre_pare = [c for c in cifre if c % 2 == 0] # Creează o listă cu cifrele pare cifre_impare = [c for c in cifre if c % 2 == 1] # Creează o listă cu cifrele impare if not cifre_pare: # Dacă nu există cifre pare return 0 else: return int(''.join([str(c) for c in cifre_pare])) # Concatenează cifrele pare într-un șir și returnează numărul obținut if __name__ == "__main__": numere = int(input("Introduceți numărul de numere: ")) if numere > 100: print("Datele nu au fost introduse corect.") else: max_par = -1 max_par_num = -1 numere_str = input("Introduceți cele " + str(numere) + " numere separate prin spații: ") lista_numere = [int(x) for x in numere_str.split()] for num in lista_numere: # Calculează asociatul par al numărului ap = get_asociat_par(num) # Verifică dacă asociatul par al numărului este mai mare decât maximul anterior # sau are același asociat par, dar este mai mare numeric if ap > max_par or (ap == max_par and num > max_par_num): max_par = ap max_par_num = num print("Datele sunt introduse corect.") print(max_par_num) </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