一.问题描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
输入格式
第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。
输出格式
只输出一个整数,即这 N 个数中包含多少对相反数。
样例输入
5 1 2 3 -1 -2
样例输出
2
二.代码
#include <iostream>
#include <map>
using namespace std;
int main()
{
int num,max=
0;
map<int,int> list;
cin>>num;
int tem,ab;
for(
int i=
0; i<num; i++){
cin>>tem;
tem>
0?ab=tem:ab=-tem;
if(
list.count(ab) &&
0==
list[ab]+tem){
max++;
}
else{
list[ab] = tem;
}
}
cout<<max;
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-1311644.html