试题名称
201403-1 相反数
问题描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
输入格式
第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。
输出格式
只输出一个整数,即这 N 个数中包含多少对相反数。
样例输入
5
1 2 3 -1 -2
样例输出
2
解法
n = int(input())
# 输入N 个用单个空格隔开的非零整数, .split() 会使用空格作为分隔符将数据存入l中
l = input().split()
# map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
# Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。
l = list(map(int, l))
l_length = len(l)
sum = 0
for i in range(l_length):
if i == l_length - 1:
break
for j in range(i + 1, l_length):
if l[i] == -l[j]:
sum += 1
print(sum)