本文主要是介绍相反数(解法-哈希表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接
有 N 个非零且各不相同的整数。 请你编一个程序求出它们中有多少对相反数(a 和 −a 为一对相反数)。
输入格式
第一行包含一个正整数 N。
第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过 1000,保证这些整数各不相同。
输出格式
只输出一个整数,即这 N 个数中包含多少对相反数。
数据范围
1≤N≤500
输入样例:
5
1 2 3 -1 -2
输出样例:
2
AC代码
#include <cstdio>
#include <string>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int N = 1010;
int a[N];int main()
{int n,x;while (cin >> n){for (int i = 0;i < n;i++){cin >> x;if (x < 0) x = fabs(x);a[x]++;}int ans = 0;for (int i = 0;i < N;i++){if (a[i] > 1) ans++;}cout << ans << endl;}return 0;
}
这篇关于相反数(解法-哈希表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!