0
已解决
王学庚
初级光能
初级光能
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
int a[101],s,n,m=0;
cin>>s>>n;
for(int i=0;i<s;i++)
{
cin>>a[i];
}
for(int i=0;i<s;i++)
{
for(int j=i+1;j<s;j++)
{
if(a[i]==a[j])
continue;
if((a[i]+a[j])==n)
{
cout<<"Y";
m=999999999;
break;
}
}
}
if(m!=999999999)
cout<<"N";
return 0;
}
0
已采纳
李祈乐
新手光能
新手光能
先输入n,x和这个数组,我们只要判断这些数中是否有任意两个数存在相加==x。
思路就是:从第一个数开始,如果第一个数加上任意后面n-1个数中的一个等于x,如果是,就输出Y,退出程序,如果没有,从第二个数开始加到后面n-2个数,如果循环结束,就没有任何两个数和满足x,输出N;即:
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[i]+a[j]==x)
{
cout<<"Y";
return 0;
}
}
}
//接下来,如果循环结束并且程序继续时,说明不满足条件,输出N
注:循环时,不需要考虑i第一次循环完时漏加了前面的数,a[1]+a[2]和a[2]+a[1]是一样的
0