计算鸭有一个长度为 n(n≤1000) 的整数序列,判断是否存在某两个元素之和为 k(k≤100)。
输入
第一行输入序列的长度 n 和 k,用空格分开。
第二行输入序列中的 n 个 [1,100] 范围内整数,用空格分开。
输出
如果存在某两个元素的和为 k ,则输出yes
,否则输出no
。
样例
输入
9 10 1 2 3 4 5 6 7 8 9
输出
yes
#include <bits/stdc++.h>
using namespace std;
int a[1100];
int main()
{
int n,k;
int flag=0;
//后面要用到
scanf("%d%d",&n,&k);
//循环输入数组a
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
//双重循环枚举是否有两个数相加等于10
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i!=j&&a[i]+a[j]==k)
{
//一一枚举看看是否有等于k的
//两个数字,并且不是两个
//相同的数字
flag=1;
break;//这里想更快的话加break也没有问题
//这里不能直接printf,否则会输出多个yes
}
}
}
if(flag==1)
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}