其他分享
首页 > 其他分享> > 201403-1相反数

201403-1相反数

作者:互联网

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
//本代码考虑了可能出现重复的数的情况 
int main(void)
{
    int n,x;
    map<int,int> mp;//映射: 键:数字 值:出现的次数 
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>x;
        if(mp.find(x)==mp.end())//mp.find()==mp.end()说明没有找到 
        {
            mp[x]=1;
        }
        else
        {
            mp[x]++;
        }
    }
    map<int,int>::iterator it;//mp类型的迭代器 
    int ans=0;
    for(it=mp.begin();it!=mp.end();it++)//遍历映射 
    {
        if(it->first>0&&mp.find(-(it->first))!=mp.end())//it->first访问键	it-second访问值 
        {
            ans+=mp[it->first]*mp[-(it->first)];//正数个数*对应的负数个数 
        }
    }
    cout<<ans<<endl;
    return 0;
}

标签:201403,end,int,mp,ans,相反数,find,first
来源: https://blog.csdn.net/qq_42091280/article/details/101226710