文章目录
题目信息
解题思路:哈希+二层枚举
- 用数组b记录一个数是否可以被得出。
- 判断b中有多少个数和a中的数相同。
代码实现
#include <bits/stdc++.h>
using namespace std;
int a[105];
bool b[20005];
int main() {
int n, sum = 0;
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
b[a[i]] = true;
}
for (int i = 1; i < n; ++i) { // 枚举第一个数
for (int j = i + 1; j <= n; ++j) { // 枚举第二个数
if (b[a[i] + a[j]]) {
b[a[i] + a[j]] = false; // 同一个数不能重复计算
++sum;
}
}
}
cout << sum << '\n';
return 0;
}