“ Ctrl AC!一起 AC!”
题目:忘题戳这
分析:先把所有数的两两和存放到set集合中去,再将输入的数组和set集合比较,如果set集合中有数组中的某个数,答案就加一。
set.find(x):用于寻找数x,如果从头遍历到尾都没找到,那么set.find(x)将==set.end()
如果找到了的话,set.find(x)!=set.end()
上代码:
#include<iostream>
#include<set>
using namespace std;
int main() {
int n; cin >> n;
int num[105];
set<int> all;//保存所有不重复的和
for (int i = 0; i < n; i++) {
cin >> num[i];
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
all.insert(num[i] + num[j]);//将和插入
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
if (all.find(num[i]) != all.end()) sum++;
}
cout << sum << endl;
return 0;
}
感谢阅读!!!
“ Ctrl AC!一起 AC!”