CCF_201403-1_相反数

按绝对值排序,因为没相同的数,直接遍历比较一遍即可。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int fun(int x)
{
    return x>0?x:-x;
}
bool cmp(int a,int b)
{
    return fun(a)<fun(b);
}

int main()
{
    int n,a[505];
    cin >> n;
    for(int i = 1;i <= n;i++)
    {
        cin >> a[i];
    }
    sort(a+1,a+n+1,cmp);
    int num = 0;
    for(int i = 1;i < n;i++)
    {
        if(fun(a[i]) == fun(a[i+1]))
        {
            num++;
            i++;
        }
    }
    cout << num << endl;
    return 0;
}
时间: 2024-10-30 21:36:23

CCF_201403-1_相反数的相关文章

CCF - 201403-1 - 相反数

问题描述 试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 51 2 3 -1 -2 样例

CCF系列之相反数(201403-1)

试题名称: 相反数 试题编号: 201403-1时间限制: 1.0s 内存限制: 256.0MB 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 51 2 3 -1 -2 样例输出 2 解题思路: 代

POJ 题目3237 Tree(Link Cut Tree边权变相反数,求两点最大值)

Tree Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 6131   Accepted: 1682 Description You are given a tree with N nodes. The tree's nodes are numbered 1 through N and its edges are numbered 1 through N ? 1. Each edge is associated with

CCF题目:相反数

问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 5 1 2 3 -1 -2 样例输出 2 -------------------------------------------------------

求一个数的相反数的补码

1.已知8位二进制表示的整数X的补码为10011011,则-X的补码的二进 制编码为( 01100101 ). 解析:已知x和-x的反码是互为相反的,所以已知x的补码,[x]反 = [x]补  - 1, (x为负数) 那么-x(-x为正数)的 补码为[-x]补  = [-x]反   = -([x]补  - 1) = -[x]补 + 1 先各位取反,0变成1,1变成0.然后最低位加一. 要是这样想: 给定一个正数的补码,怎么求他的相反数的补码? 解析:正数的原,反,补码相同. 他的相反数的原码是修

CCF认证之——相反数

这道题目非常简单! #include<iostream> using namespace std; int main() { int i,j,num[1000],n,count=0; cin >> n; for (i = 0; i < n; i++) { cin >> num[i]; } for (i = 0; i < n; i++) { for (j = i; j < n; j++) { if (num[i] + num[j] == 0) count

【CCF】相反数

问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 5 1 2 3 -1 -2 样例输出 2 #include <iostream> using namespace std; int N = 1000;

ccf 相反数

问题描述 问题描述 试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 5 1 2 3 -1

首届CCF真题1-相反数

问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对 相反数(a 和 −a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过 1 000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 输入样例 5 1 2 3 -1 -2 输出样例 2  1 #include <iostream> 2 #include <map> 3 4 u

CCF模拟题 相反数

相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数. 样例输入 51 2 3 -1 -2 样例输出 2 解题:... 1 #include <bits/std