P2141 珠心算测验

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();
    
}

 

posted @ 2019-05-31 19:43  晔子  阅读(223)  评论(0编辑  收藏  举报