一对数的和等于给定的数
给出若干个整数,询问其中是否有一对数的和等于给定的数.
输入:
4
2 5 1 4
6
输出
1 5
说明: 如果有多对数符合要求,输出最小数最小的一对
#include <iostream>
#include <algorithm>
using namespace std;
int binsearch(int a[],int low,int high,int k){
int mid;
if(low>high)
return 0;
mid=(low+high)/2;
if(a[mid]==k)
return mid;
else if(k>a[mid])
return binsearch(a,mid+1,high, k);
else
return binsearch(a,low,mid-1, k);
}
int main(){
int i,n,a[1000],sum;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
cin>>sum;
for(i=1;i<n;i++) {
if(binsearch(a,i+1,n,sum-a[i])) {
cout<<a[i]<<" "<<sum-a[i]<<endl;
break;
}
}
return 0;
}