题目描述:
给定个整数的数组,找其中的pair(a, b),使得a+b=0,返回这样的pair数目。(a, b)和(b, a)是同一组。
分析:
动态的输入一个整数型数组;
#include<iostream>
#include<algorithm>
using namespace std;
int zeropair(int* a, int size);
const int N = 1000;
int a[N];
int main(){
int i = 0;
while (cin >> a[i]){
i++;
}
sort(a, a + i);
int num = zeropair(a, i);
cout << num;
return 0;
}
int zeropair(int* a, int size){
int cnt = 0;
int i = 0;
int j = size - 1;
while (i < j){
if (a[i] + a[j] == 0)
{
++cnt;
++i; --j;
}
else if (a[i] + a[j] < 0)
++i;
else
--j;
}
return cnt;
}