Responsive image

问题 3016 --第5关:找出数组中和为目标值的两个数

3016: 第5关:找出数组中和为目标值的两个数

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 233
[提交][状态][讨论版][命题人:]

题目描述

设计算法,找出数组中相加之和为目标值的两个数,并输出这两个数的下标。每组输入仅对应一种答案,相同的元素不能被重复利用。
组合提交代码,仅支持C++
#include<iostream>

using namespace std;
void CreateArray(int * a, int n) { //创建数组
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
}
void Find(int * a, int n, int x) { //找出数组中和为目标值的两个数
  /**************begin************/
  


  /**************end************/
}
int main() {
  int n;
  while (cin >> n) {
    if (n == 0) break;
    int * a = new int[n];
    CreateArray(a, n); //创建数组
    int x;
    cin >> x;
    Find(a, n, x);
  }
  return 0;
}



输入描述

多组数据,每组数据有三行,第一行为数组的大小n,第二行为n个元素(元素之间用空格分隔),第三行为目标值,当n=0时输入结束。

输出描述

对于每组数据分别输出一样,输出两个数的下标(元素间用空格分隔)

样例输入

4
2 7 11 15
9
3
3 2 3
6
6
1 9 5 3 2 3
11
0

样例输出

0 1
0 2
1 4

提示

组合提交代码,你仅需要提交


void Find(int * a, int n, int x) { //找出数组中和为目标值的两个数


  /**************begin************/

  








  /**************end************/


}




来源

 

[提交][状态]
ACM算法攻关部