题目描述:
小黑有一个长度为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
思路:
1.创建数组,把数存进去。
int a[1005];
int n, k;
cin >> n >> k;
for(int i = 0;i < n;i++){
cin >> a[i];
}
2.用双重for循环依次去试等不等于K,如果等于就输出yes,结束主程序。
3.全部判断完后,不等于就输出no。
注意:
1.输出时每行末尾的多余空格,不影响答案正确性。
2.输出的yes和no是小写,不是大写。
具体代码如下:
点赞在复制哦!
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[1005];
int n, k;
cin >> n >> k;
for(int i = 0;i < n;i++){
cin >> a[i];
}
for(int i = 0;i < n;i++){
for(int j = i + 1;j<n;j++){ //j = i + 1 是因为j要从i的下一位加起
if(a[i] + a[j] == k){ //判断加起来是否为K
cout << "yes" << endl;
return 0; //结束主程序
}
}
}
cout << "no" << endl;
return 0;
}