问题描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对 相反数(a 和 −a 为一对相反数)。
输入格式
第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过
1 000,保证这些整数各不相同。
输出格式
只输出一个整数,即这 N 个数中包含多少对相反数。
输入样例
5
1 2 3 -1 -2
输出样例
2
1 #include <iostream> 2 #include <map> 3 #include "math.h" 4 5 using namespace std; 6 7 int main() { 8 map<int,int> j; 9 int n; 10 cin>>n; 11 int ans=0; 12 for(int i=0;i<n;i++) 13 { 14 int num=0; 15 cin>>num; 16 num = abs(num); 17 j[num]++; 18 if(j[num]>1) 19 ans++; 20 } 21 cout<<ans<<endl; 22 return 0; 23 }