题目描述
给定 n 个整数 1,2,⋯ ,a1,a2,⋯,an, 求它们两两相乘再相加的和,即S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅an
输入格式
输入的第一行包含一个整数 n 。
第二行包含 n 个整数 a1,a2,⋯a1,a2,⋯an 。
输出格式
输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。
题目已经给了提示了,合适的数据类型也就是说单靠long long是不够的,需要使用数组。
代码如下:
#include<bits/stdc++.h>
#define int long long
#define LL_int 128
#define MAXN 250000
using namespace std;
int n;
int a[MAXN];
int sum=0;
signed main(){
std::ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
sum=sum+a[i]*a[j];
}
}
cout<<sum;
return 0;
}