禁止转载,该文章内容并非教学,仅为个人笔记。
问题描述
给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即
S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + ann2 · ann1 + ann2 · an + ann1 · an.
【输入格式】
输入的第一行包含一个整数 n 。
第二行包含 n 个整数 a1, a2, · · · an。
【输出格式】
输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。
【样例输入】
4
1 3 6 9
【样例输出】
117
【评测用例规模与约定】
对于 30% 的数据,1 ≤ n ≤ 1000,1 ≤ ai ≤ 100。
对于所有评测用例,1 ≤ n ≤ 200000,1 ≤ ai ≤ 1000。
代码实现
#include<iostream>
#include <vector>
using namespace std;
int n, count;
vector<int> s;
int main()
{
cin >> n;
for (int i = 0; i < n; ++i)
{
int temp;
cin >> temp;
s.push_back(temp);
}
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j)
count += s[i] * s[j];;
cout << count;
}