Informatică, întrebare adresată de adioprea101, 9 ani în urmă

Stie cineva cum se rezolva problema 1212 de pe pbinfo.
calculati suma S=1^2+2^2+3^2+...+N^2
^2=la puterea a doua

Răspunsuri la întrebare

Răspuns de Kirilll
1
var     a,i,n:integer;begin     a:=0;     readln(n);     for i:=n downto 0 do          a:=a+sqr(i);     writeln(a);end.
Anexe:

Kirilll: poti sa calculezi cu calculatorul,sper ca team ajutat
adioprea101: Multumes Mult
Răspuns de Razzvy
9
Exista o formula: n(n + 1)(2n +1) / 6
Numai ca nu putem sa o scriem direct deoarece vom depasi limita tipului de date, asa ca va trebui s-o punem intr-un maod cat mai "economic"

#include <iostream>
using namespace std;
 
int main()
{
    long long n,mod=10234573,a,b;
    cin>>n;
    a=n+1;
    b=2*n+1;               //Cei trei termeni ai fractiei sunt n, (n+1), si (2n + 1) si ii voi lua separat
                                 
//Noi trebuie sa impartim termenii inmultirii la 6, adica la 2*3, si vom face impartirea pe rand.
    if(n%2==0) n/=2;  //Daca n e par atunci se poate imparti la 2
    else a/=2;             //Altfel, inseamna ca a=n+1 este par, si-l impartim pe el
   
    if(n%3==0) n/=3;        //Acelasi lucru ca mai sus, numai ca impartirea e la 3
    else if(a%3==0) a/=3;
    else b/=3;
    cout<<n%mod*a%mod*b%mod; //Aplicam mod la fiecare termen, ca sa fim siguri ca nu depaseste limita tipului de date long long
}

adioprea101: Multumesc
Razzvy: cu placere!
Alte întrebări interesante