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
0623 - Numere 3
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/623/numere3] ==Enunt== Având o pasiune pentru numere, Răzvan a inventat un nou joc pentru două persoane. Regulile jocului sunt simple: se aleg trei numere naturale a, b şi c astfel încât a<b<c. La fiecare pas, primul jucător adună la a suma cifrelor lui a, iar cel de-al doilea jucător scade din c suma cifrelor lui c, la pasul următor fiind luate în considerare noile valori obţinute pentru a şi c. Jocul se termină când, la un anumit pas, a devine mai mare sau egal decât b, caz în care primul jucător este declarat câştigător, sau când c devine mai mic sau egal cu b, situaţie în care câştigă al doilea jucător. Dacă la un pas se îndeplinesc ambele codiţii, jocul se termină la egalitate. ==Cerința== Cunoscând a, b şi c se cere: a) Suma cifrelor celor trei numere. b) Valorile numerelor a şi c la fiecare pas al jocului, precum şi câştigătorul jocului. ==Date de intrare== Fişierul de intrare numere3.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2. Pe a doua linie se găsesc cele trei numere naturale a, b şi c descrise în enunţ. ==Date de ieșire== Dacă valoarea lui p este 1, se va rezolva numai punctul a) din cerință. În acest caz, în fişierul de ieşire numere3.out se va scrie un singur număr natural s, reprezentând suma cifrelor lui a, b şi c. Dacă valoarea lui p este 2, se va rezolva numai punctul b) din cerință. În acest caz, fişierul de ieşire numere3.out va conține mai multe linii pe care se vor găsi câte două numere naturale separate printr-un spaţiu: valorile lui a şi c la fiecare pas al jocului. Pe ultima linie se va găsi 1, dacă primul jucător câştigă, 2 dacă cel de-al doilea jucător câştigă sau 0 dacă jocul se termină la egalitate. ==Restricții și precizări== 0 < a < b < c < 10.000.000 Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, iar pentru cerința a doua se acordă 80 de puncte. ==Exemplul 1:== numere3.in 1 25 51 75 numere3.out 25 ==Explicație== p = 1 2+5+5+1+7+5=25 Atenție! Pentru acest test se rezolvă doar cerința a) ==Exemplul 2:== numere3.in 2 25 51 75 numere3.out 25 75 32 63 37 54 47 45 2 ==Explicație== p = 2 La cel de-al treilea pas, c devine mai mic decât b, jocul fiind câștigat de către al doilea jucător. Atenție! Pentru acest test se rezolvă doar cerința b). ==Exemplul 3:== numere3.in 2 25 46 75 numere3.out 25 75 32 63 37 54 47 45 0 ==Explicație== p = 2 La cel de-al treilea pas, a devine mai mare decât b, dar și c devine mai mic decât b. Astfel, jocul se termină la egalitate. Atenție! Pentru acest test se rezolvă doar cerința b). ==Încărcare soluție== <syntaxhighlight lang="python" line> def sum_of_digits(num): """ Calculează suma cifrelor unui număr dat. """ return sum(int(digit) for digit in str(num)) # Citirea datelor de intrare p = int(input()) a, b, c = map(int, input().split()) if p == 1: # Rezolvarea cerinței a) print(sum_of_digits(a) + sum_of_digits(b) + sum_of_digits(c)) elif p == 2: # Rezolvarea cerinței b) winner = 0 # Câștigătorul jocului (0 - egalitate, 1 - primul jucător, 2 - al doilea jucător) while a < b and c > b: # Adună suma cifrelor lui a a += sum_of_digits(a) # Scade suma cifrelor lui c c -= sum_of_digits(c) print(a, c) if a >= b: winner = 1 elif c <= b: winner = 2 print(winner) </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