珠心算测验

这题还是比较简单的,不过就是很坑,我先说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;
}

猜你喜欢

转载自blog.csdn.net/qq_39984146/article/details/79162712