CCF模拟题 相反数

相反数

时间限制: 1.0s
内存限制: 256.0MB

问题描述

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

输入格式

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

输出格式

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

样例输入

5
1 2 3 -1 -2

样例输出

2

解题:。。。

 1 #include <bits/stdc++.h>
 2 #define LL long long
 3 using namespace std;
 4 const int maxn = 1010;
 5 int positive[maxn],negative[maxn],n,tmp;
 6 int main(){
 7     while(~scanf("%d",&n)){
 8         LL ans = 0;
 9         memset(positive,0,sizeof(positive));
10         memset(negative,0,sizeof(negative));
11         for(int i = 0; i < n; ++i){
12             scanf("%d",&tmp);
13             if(tmp < 0) negative[-tmp]++;
14             if(tmp > 0) positive[tmp]++;
15         }
16         for(int i = 0; i < maxn; ++i)
17             ans += positive[i]*negative[i];
18         printf("%I64d\n",ans);
19     }
20     return 0;
21 }

时间: 2024-08-09 02:10:21

CCF模拟题 相反数的相关文章

CCF模拟题5-I&#39;m stuck!

问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方格: '+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格: '-': 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#'方格移动一格: '|': 当玩家到达这一方格后,下一步可以向上下两个方向相邻的一个非'#'方格移动一格: '.': 当玩家到

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 解题思路: 代

CCF题目:相反数

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

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

[编程题] 相反数 网易2018校招

为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数".例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略.例如n = 100, 颠倒之后是1. 输入描述: 输入包括一个整数n,(1 ≤ n ≤ 10^5) 输出描述: 输出一个整数,表示n的相反数 输入例子1: 1325 输出例

【CCF】找相反数

题目1相反数 时间限制:1秒空间限制:256MB 问题描述 有N个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a和?a为一对相反数). 输入格式 第一行包含一个正整数N.(1≤N≤500). 第二行为N个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同. 输出格式 只输出一个整数,即这N个数中包含多少对相反数. 输入样例 5 123-1-2 输出样例 2 ① 链表法 #include<iostream> #include<time.h>

ISBN号码-CCF模拟题

问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码.ISBN码的首位数字表示书籍的出版语言,例如0代表英语:第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社:第二个分隔之后的五位数字代表该书在出版社的编号:最后一位为识别码. 识别码的计算方法如下: 首位数字乘以1加

CCF模拟题 字符串匹配

字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符:当选项关闭时,表示同一个字母的大写和小写看作相同的字符. 输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成. 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感. 第三行包含一个整数n,表示给出的文字的行数. 接下来n

CCF模拟题 最优配餐

最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注). 方格图中的线表示可以行走的道路,相邻两个格点的距离为1.栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点. 送餐的主要成本体现在路上所花