ccf:2014-03-01相反数(解题思路 + 满分代码)

题目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzxDlEOS-1636021185916)

解题思路

记录每个数字绝对值出现的个数用哈希表,由于数据范围比较小,所以可以用数组模拟哈希表实现
int类型取绝对值用abs函数,在 cmath头文件中

代码实现

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>

using namespace std;

const int N = 1010;

int a[N];

int main()
{
    int n;
    cin >> n;

    int res = 0;
    for (int i = 1; i <= n; i ++)
    {
        int num;
        cin >> num;
        num = abs(num); //取绝对值
        a[num] ++;
        if(a[num] == 2) res ++; //如果有相反数,那么该下标会对应有两个数字
    }

    cout << res;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_51800570/article/details/121148347
今日推荐