思路
设置一个头指针begin, 一个尾指针end。若首尾元素的和 正好是输入那个数,则输出它们。若首尾元素和>输入那个数则,--end。若首尾元素和<输入那个数则,++begin。
#include <iostream>
using namespace std;
//在m数组中查找和为sum的两个数,并将其输出
void FindNumber(int m[], int len, int sum)
{
int begin = 0; //指向数组第一个原数
int end = len - 1; //指向数组最后一个原数
while (begin < end)
{
if (m[begin] + m[end] == sum)
{
cout<<m[begin]<<" "<<m[end]<<endl;
break;
}
else if (m[begin] + m[end] < sum) //若当前和<sum则起始指针begin往后移
{
++begin;
}
else //若当前和>sum则结尾指针end往前移
{
--end;
}
}
}
int main()
{
int arr[] = {1, 2, 4, 7, 11, 15};
FindNumber(arr, 6, 15);
return 1;
}