Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

C++ se da un numar n , si sirul 1 la put 1 + 2 la put 2 +....+ n la put n ,
sa se afle ultima cifra a sumei , imi trebuie o metoda foarte eficienta deoarece daca doar calculez suma timpul de executie este prea mare.


Seckar: Si care e valoarea maxima a lui n?

Răspunsuri la întrebare

Răspuns de Seckar
1
Poti incerca asa ceva dar nu am stat sa testez daca e cea mai optima, insa secretul sta in faptul ca poti doar sa lucrezi cu ultima cifra a fiecaru numar, de aia iei mereu ultima cifra cu %10.

P.S. Daca e de pe pbinfo nu te lua dupa evaluarile lor la timpul de executie pentru ca sunt foarte prost gandite.

Spor!


Anexe:

Seckar: 3. Daca nu "exista" .h in cpp nu ar fi compilat. Probabil te referi la faptul ca nu este necesar. Ceea ce este fals.
Seckar: Cand(si daca) vei ajunge la o facultate de info, vei invata despre o inventie foarte faina, conceptul de namespace si de nametable, atunci o sa inveti si tu de ce scrii acolo "using namespace std;" la inceput. Majoritatea headerelor din C au fost portate din C++, dar nu te-ai intrebat niciodata de ce axista si cmath si math.h daca tot e acelasi lucru?
Seckar: math.h, string.h etc. sunt acolo cu un motiv. dau compatibilitate cu standardele C, si uneori implementarie lor in C sunt mai robuste si mai optime. Pe de alta parte daca nu stii de ce ai nevoie de acolo iti vor polua namespace-ul global.
Seckar: cmath, cstring s.a.m.d. sunt variantele C++, asta inseamna ca NU sunt acelasi lucru ca varinatele cu .h, au anumite definitii in plus in ele iar ce au in ele sunt definite in namespace-ul standard(pe care voi oricum il poluati cu orice gasiti prin acle using namespace std), daca ati lucra asa cum este normal in C++, si anume aducand din namespace-ul standard doar functiile de care ai nevoie, ar face mai mult sens sa incluzi variantele fara .h
Seckar: Dar cand esti in situatia in care oricum ajuti o multime de lume pe aici(cum sunt eu) si nu mai stai sa schimbi setul de incluziuni la fiecare implementare, sincer nu e nici o diferenta.
Seckar: Concluzie:
Seckar: 1. Nu incerca sa te dai smecher, te asigur ca nu eu sunt cel care va ajunge sa fie penibil, incearca sa inveti si sa cercetezi inainte sa dai cu parul.
Seckar: 2. variantele fara ".h" si cu "c" in fata au sens daca importi doar functii specifice din namespace asa cum fac eu(verifica ce am eu in loc de using namespace std) sau daca vrei sa folosesti una din noile aditii care nu erau in cersiunile de C.
Seckar: 3. Varinatlee cu ".h" sunt perfect valide si uneori chiar putin mai optime, desi vechi, dar vechi nu inseamna prost, ba dimpotriva, exista un motiv pentru care C, nu c++, este limbajul care este folosit in aplicatii performance critical cum ar fi diferite sisteme ale masinilor, si aici ma refer la masini adevarate, brand-uri gen Nissan sau BMW sau Renault(de astea stiu eu pentru ca am scris cod pentru ele :)
Seckar: Nu mai ataca daca nu cunosti cu adevarat problema sefu, atat in legatura cu modul de a scrie cod, cat si in legatura cu o evaluare prost gandita.
Răspuns de Razzvy
0
Ai solutia in atasament.
Anexe:

Razzvy: Am observat ca si suma are o periodicitate de 100 elemente, asadar, se putea aplica mod 100 lui n.
Alte întrebări interesante