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();
    
}
原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10957148.html