Informatică, întrebare adresată de laurstefan2002, 8 ani în urmă

Problema #3001 de pe pbinfo:
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
Ieșire

1
Explicație
Se vor desfășura 2 runde.

În prima rundă calculatorul generează numărul 1 și Maricica răspunde 5. Maricica răspunde corect la prima rundă și primește un punct pentru această rundă. 1*2*3*4 + 1 = 25. Partea întreagă a numărului radical din 25 este 5.

În runda a doua calculatorul generează numărul 2 și Maricica răspunde 15. Maricica răspunde greșit la a doua rundă și primește 0 puncte. 2*3*4*5 + 1 = 121. Răspunsul corect ar fi 11. Maricica răspunde 15.

Punctajul acumulat de Maricica pe parcursul celor două runde este 1 + 0 = 1.


boiustef: Se demonstrează că a(a+1)(a+2)(a+3)+1=(a^2+3a)(a^2+3a+2)+1=
(a^2+3a)^2+2(a^2+3a)+1=(a^2+3a+1)^2 este un patrat perfect, atunci radical din el va fi egal cu a^2+3a+1
laurstefan2002: Multumesc frumos!

Răspunsuri la întrebare

Răspuns de boiustef
4

#include <iostream>

using namespace std;

unsigned long long  n, A, R, scor=0, i, t;

int main()

{

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> A >> R;

       t=A*A+3*A+1;

       if (t==R) ++scor;

   }

   cout << scor;

}


pmarian98: #include
#include
using namespace std;

int main()
{
unsigned int n;
double A,R,s=0,P;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>A>>R;
P=sqrt(A*(A+1)*(A+2)*(A+3)+1);
if(P==R)
s++;
}
cout< return 0;
}
pmarian98: si ideea mea
pmarian98: coout<
Alte întrebări interesante