/*========================================================*\第14题(数组):题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。\*========================================================*/#includeusing namespace std;bool findNum(int *index,int n,int sum,int &x,int &y){ int begin = 0; int end = n-1; while (begin < end){ if (index[begin]+index[end] == sum){ x=index[begin]; y=index[end]; return 1; }else if(index[begin]+index[end]>sum){ --end; }else{ ++begin; } } return 0;}int main(){ int index[]={1,2,4,7,11,15}; int x; int y; int sum = 15; int ret = findNum(index,6,sum,x,y); if (1 == ret){ cout << x << " + " << y << " = " << sum << endl; }else{ cout << "no answer" << endl; } return 1;}