一切从昨晚的一个小题目开始:
总时间限制: 1000ms 内存限制: 65536kB
描述:在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。
输入
第一行输入序列的长度n和k,用空格分开。
第二行输入序列中的n个整数,用空格分开。
输出
如果存在某两个元素的和为k,则输出yes,否则输出no。
样例输入
9 10
1 2 3 4 5 6 7 8 9
样例输出
yes
一开始写本题的时候,我采取的是两个for循环,meet条件就结束循环,返回结束。
源代码如下:
#include <iostream>
using namespace std;
int main(){
int n,k;
int a[1000];
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){
if(k == (a[i] + a

本文介绍了如何解决寻找数组中两个数之和等于给定值的问题,从最初的双重循环方法到优化后的解决方案。还讨论了C++中数组的相关知识,包括不可变数组的处理方式以及数组的存储结构。最后提到了`setw()`函数在格式化输出中的作用。
最低0.47元/天 解锁文章
1916

被折叠的 条评论
为什么被折叠?



