题目描述
(1)题描述及输入输出格式要求
问题描述如下图
![](https://img-blog.csdnimg.cn/22a744c43a094dfda6544908381c8492.png)
输入输出格式如下图
![](https://img-blog.csdnimg.cn/3949cb4a842945cbbfd2ec2e6355a1ad.png)
(2)解题思路分析
1.输入一个整数 num,表示接下来的输入列表包含多少个整数。
2.按照空格分隔,输入一系列整数。
3.使用字典 zs_dict 存储正数,使用列表 fs_list 存储负数。
5.遍历整数列表 ns,将正数存入 zs_dict,负数存入 fs_list。
6.使用整数变量 count_xfs 记录具有相反数的数字对的个数。遍历负
数列表 fs_list,检查列表中的每个负数,使用字典进行快速查找,看其相
反数(正数)是否存在于 zs_dict 中。如果存在,则将 count_xfs 加
1.
28
(3)提交的编程代码
num = int(input())
ns = [int(s) for s in input().split()]
zs_dict = {}
fs_list = []
count_xfs = 0
for n in ns:
if n > 0:
zs_dict[n] = 0
else:
fs_list.append(n)
for fs in fs_list:
if -fs in zs_dict:
count_xfs += 1
print(count_xfs)
此致与君共勉