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



Cerința

Se dau n numere naturale, unde n este număr natural par. Să se calculeze suma produselor dintre fiecare număr din prima jumătate și fiecare număr din a doua jumătate a șirului de numere date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări
•1 ≤ n ≤ 100.000
•cele n numere citite vor fi mai mici sau egale cu 10.000




Exemplu

Intrare
4
2 3 4 5


Ieșire
45


Explicație

Suma este S = 2⋅4+2⋅5+3⋅4+3⋅5=8+10+12+15=45
2⋅4+2⋅5+3⋅4+3⋅5=8+10+12+15=45
Care este formula pt aceasta ec?

Răspunsuri la întrebare

Răspuns de blindseeker90
12
Daca notezi numerele cu litere
a b c d
Atunci suma ar fi S=ac+ad+bc+bd=a(c+d)+b(c+d)=(a+b)(c+d) Deci observi ca suma este produsul dintre suma termenilor din prima jumatate cu suma termenilor din a doua jumatate
O solutie ar arata precum cea de mai jos:
#include <iostream>
using namespace std;

int main(){
long int n,s1=0,s2=0,x;
int i;
cin>>n;
for(i=0;i<n/2;i++){
cin>>x;
s1=s1+x;
}
for(i=n/2;i<n;i++){
cin>>x;
s2=s2+x;
}
cout<<s1*s2;
return 0;
}

Pisicuta1307: da,multumesc, nu ma gandisem la variant asta
Alte întrebări interesante