这题还是比较简单的,不过就是很坑,我先说3个坑点,看谁WA了:
1.其中有多少个数,恰好等于集合中另外两个(不同的)数之和?
2.数组开小了
3.注意,加数和被加数必须是集合中的两个不同的数。
枚举轻松过
Code
#include<cstdio>
int a[110],book[110];//用来标记
int main()
{
int n;
int num=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
for(int k=1;k<=n;k++)//枚举
if(a[i]+a[j]==a[k]&&book[k]==0)
{
num++;//如果这个数没标记过并且符合条件,答案数++
boook[k]=1;//标记好了,我一开始忘了QAQ
}
printf("%d",num);
return 0;
}