3001 - PSR

From Bitnami MediaWiki
Revision as of 13:17, 26 October 2023 by Ghisa Catalin (talk | contribs) (Pagină nouă: == 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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
1

Rezolvare

<syntaxhighlight lang="python" line> def calculeaza_R(A):

   return int(A * (A + 1) * (A + 2) * (A + 3) + 1)**0.5

def main():

   N = int(input("Introduceți numărul de runde (N): "))
   punctaj = 0
   for _ in range(N):
       A, R = map(int, input("Introduceți numărul generat de calculator și răspunsul dat de Maricica (A R): ").split())
       valoare_asteptata_R = calculeaza_R(A)
       if valoare_asteptata_R == R:
           punctaj += 1
   print("Punctajul obținut de Maricica la sfârșitul celor", N, "runde:", punctaj)

if __name__ == "__main__":

   main()

</syntaxhighlight>