CCF 相反数

    xiaoxiao2026-08-28  1

    一.问题描述

      有 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; //abs()需要引入头文件<math.h>,减少引入。(话说VC6不用引入就能通过编译,是我打开方式不对????) 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
    最新回复(0)