希望更丰富的展现?[使用Markdown](https://www.luogu.org/wiki/show?name=%E5%B8%AE%E5%8A%A9%EF%BC%9Amarkdown)
by t162 @ 2019-01-20 17:27:41
# Markdown警告!
by ethan_zhou @ 2019-01-20 17:41:17
你是不是没有特判两个数相等?
by ethan_zhou @ 2019-01-20 17:46:54
如果是你的代码应该改为:
```
#include <iostream>
#include <algorithm>
using namespace std;
int n; int a[200];
int main() {
cin>>n; //正整数个数
int cnt=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
for(int y=2;y<=n-1;y++){
bool flag=0;
for(int i=0;i<n-2;i++)
{
for(int j=i+1;j<n-1;j++)
{
if(a[i]+a[j]==a[y])
{
cnt++;
flag=1;
break;
}
}
if(flag)break;
}
}
cout<<cnt;
return 0;
}
```
以下我的代码可能效率会更高一些:
```
#include <cstdio>
#include <algorithm>
const int NR=105,MXN=10005;
int n,cnt=0,l[NR];bool h[MXN];
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",l+i);
h[l[i]]=1;
}
std::sort(l,l+n);
for(int i=2;i<n;i++)//枚举和
for(int j=0;j<i;j++){//枚举小的加数
if((l[i]-l[j])<=l[j])break;
if(h[l[i]-l[j]]){
cnt++;break;
}
}
printf("%d",cnt);
return 0;
}
```
by ethan_zhou @ 2019-01-20 18:16:27