CCF CSP 201403-1 相反数

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址

CCF CSP 201403-1 相反数

问题描述

  有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。

输入格式

  第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。

输出格式

  只输出一个整数,即这 N 个数中包含多少对相反数。

样例输入

5
1 2 3 -1 -2

样例输出

2

解析

使用一个数组arr记录是否出现过绝对值为a的数。

代码

C

#include <stdio.h>
#include <math.h>

int main() {
    bool arr[1001] = {0};
    int N;
    scanf("%d", &N);
    int cnt = 0;
    for(int n=0; n<N; n++) {
        int num;
        scanf("%d", &num);
        num = abs(num);
        if(arr[num]) cnt++;
        arr[num] = true;
    }
    printf("%d", cnt);
}

 

posted on 2017-10-14 20:24  meelo  阅读(587)  评论(0编辑  收藏  举报