P2141 珠心算测验
这个题目已经把孩子逼疯到用 set 了
【题解】
老师随机生成一个集合
我们先sort一下,所以一个数字只能由它之前的数字相加得到 for循环实现
注意不重复
当然还要注意
一个集合{ 1,2,3,4,5 }
1+4=5 2+3=5 但是5只能算一次
所以我就动用了 set
【代码】
#include<bits/stdc++.h> using namespace std; int n,a[110]; set<int> answer,ans; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for(int i=1;i<=n;i++) for(int j=1;j<i;j++) for(int z=1;z<j;z++) if(a[j]!=a[z]&&(a[j]+a[z])==a[i]) { answer.insert(a[i]); continue; } cout<<answer.size(); }