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
3001 - PSR
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!
== Cerinţa == Maricica este elevă în clasa a VIII-a și se pregătește pentru Examenul de Evaluare Națională. Profesorul de matematică a observat că Maricica nu stăpânește operațiile matematice elementare așa că, i-a oferit softul educațional '''PSR''' (produs – suma – radical) care funcționează astfel: În fiecare rundă, calculatorul generează un număr natural '''A'''. Maricica trebuie să calculeze un număr '''R''' = partea întreagă a numărului '''√A∗(A+1)∗(A+2)∗(A+3)+1'''. Dacă răspunde corect, Maricica primește un punct altfel primește zero puncte pentru runda curentă. Jocul se desfășoară pe parcursul a N runde. Punctajul S obținut de Maricica se va calcula ca fiind suma punctajelor obținute în fiecare rundă. Câte puncte a acumulat Maricica? == Date de intrare == Programul citește de la tastatură numărul natural '''N''', reprezentând numărul de runde și apoi '''N''' perechi de numere naturale '''A''' și '''R''', separate prin spații, reprezentând numărul generat de calculator și răspunsul dat de Maricica în runda curentă. == Date de ieșire == Programul va afișa pe ecran, pe prima linie numărul '''S''', reprezentând punctajul obținut de Maricica la sfârșitul celor '''N''' runde. == Restricţii şi precizări == * 1 ⩽ N ⩽ 10000 * 1 ⩽ A ⩽ 100000 * 1 ⩽ R ⩽ 10000300001 == Exemplu == ; Intrare : 2 : 1 5 : 2 15 ; Iesire : Datele de intrare corespund restrictiilor impuse : Punctajul obținut de Maricica la sfârșitul celor 2 runde: 1 == Exemplu 2== ; Intrare : 1 : 35 ; Iesire : Datele de intrare nu corespund restrictiilor impuse == Rezolvare == <syntaxhighlight lang="python" line> def validare(nr, runda): # functia de validare a datelor de intrare if len(runda) != nr: raise ValueError if nr > 10000: raise ValueError for numar1, numar2 in runda: if (not isinstance(numar1, int) or numar1 < 1 or numar1 > 100000 or not isinstance(numar2, int) or numar2 < 1 or numar2 > 10000300001): raise ValueError print("Datele de intrare corespund restrictiilor impuse") def calculeaza_numar2(numar1): return int((numar1 * (numar1 + 1) * (numar1 + 2) * (numar1 + 3) + 1)**0.5) def punctaj(runde1): puncte = 0 for numar1, numar2 in runde1: valoare_asteptata_numar2 = calculeaza_numar2(numar1) if valoare_asteptata_numar2 == numar2: puncte += 1 return puncte if __name__ == '__main__': # din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam try: n = int(input("Introduceți numărul de runde (N): ")) runde = [] for i in range(n): A, R = map(int, input("Introduceți numărul generat de calculator și răspunsul dat de Maricica (A R): ").split()) runde.append((A, R)) validare(n, runde) # apelul functiei de validare result = punctaj(runde) # apelul functiei de rezolvare print("Punctajul obținut de Maricica la sfârșitul celor", n, "runde:", result) except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse") </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