```c
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
long int n,a[10001],sum=0;
scanf("%ld",&n);
for(int i=0;i<n;i++)//读入正整数
{
scanf("%ld",&a[i]);
}
for(int j=0;j<n;j++)//看第j个数
{
for(int i=0;i<j;i++)//判断
{
for(int k=0;k<i;k++)
{
if(a[i]+a[k]==a[j])
sum++;
}
}
}
printf("%ld",sum);
return 0;
}
```
by crikee @ 2019-02-03 01:16:13
你这个判断条件不对,因为题目里意思找出a=b+c;
但你的语句实现的a=b+b也判断成是可以的,还有原题中4=1+3和4=2+2只算成一种情况,sum只加一次,你自己看着改改。我自己是个小菜鸟,就不帮你改了~
by fuzhen @ 2019-02-03 05:26:03
i和k的循环要从0跑到n,只要互不相等就行了
by 落灰 @ 2019-02-03 08:38:24
```
#include<bits/stdc++.h>
using namespace std;
long int n,a[10001],sum=0;
bool used[10001]={false};
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<n;j++)
for(int i=0;i<n;i++)
for(int k=0;k<n;k++)
if(i!=j&&i!=k&j!=k)
if(a[i]+a[k]==a[j]&&!used[j])
{
used[j]=true;
sum++;
}
cout<<sum;
return 0;
}
```
by 落灰 @ 2019-02-03 08:40:32