在一个长度为n(n<1000)的整数序列中,判断是否存在某两个元素之和为k。
时间限制:1000内存限制:65536
输入
第一行输入序列的长度n和k,用空格分开。 第二行输入序列中的n个整数,用空格分开。输出
如果存在某两个元素的和为k,则输出yes,否则输出no
样例输入
9 10
1 2 3 4 5 6 7 8 9
样例输出
yes
分析:
这道题是一道很简单的枚举题,我们只需要把所有数字进行枚举,然后进行判断即可。
理论已有,开始实践。 不准直接抄
代码:
#include <bits/stdc++.h>
using namespace std;
int a[1010];//数组往大开,是个好习惯
int main()
{
int n,k;
cin>>n>>k;//输入
for(int i=1;i<=n;i++) cin>>a[i];//将所有数存入数组中
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)//j=i+1,可以省时间
if(a[i]+a[j]==k)//对两个元素的和进行判断
{
cout<<"yes";
return 0;//找到了直接输出yes,然后结束
}
cout<<"no";//如果没找到,输出no
return 0;
}
虽然洛谷没有这题,但作者自己用了几组数据测了,希望对你有帮助!!!
如果你能关注新人煮波,那么我觉得这件事泰酷了 !