题目如下:
思路如下:
把所有可能的和算出来,利用set容器 的不能重复并且从小到大排序
遍历所有的数字 是否等于 那些所有可能的和 计算数量即可
代码如下:
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<vector> #include<set> using namespace std; int main(){ int n,m; cin>>n; vector<int> ans; set<int>c; while(n--){ cin>>m; ans.push_back(m); } sort(ans.begin(),ans.end()); for(int i=0;i<ans.size();i++) for(int j=i+1;j<ans.size();j++) c.insert(ans[i]+ans[j]); int sum=0; for(auto i:ans) if(c.count(i)) sum++; cout<<sum<<endl; return 0; }