题目描述
给出一串数以及一个数字 C,要求计算出所有 A−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。
输入
输入共两行。
第一行,两个整数 N,C。
第二行,N 个整数,作为要求处理的那串数。
输出
一行,表示该串数中包含的满足 A−B=C 的数对的个数。
样例输入1
4 1
1 1 2 3
样例输出1
3
提示
1 <= N <= 2000
来源/分类(难度系数:一星)
二分 双排列
完整代码展示:
a,b=map(int,input().split())
c=list(map(int,input().split()))
d=0
for i in range(0,len(c)):
e=c[:]
e.remove(c[i])
for j in range(0,len(e)):
if c[i]-e[j]==b:
d+=1
print(d)
代码解释:
“a,b=map(int,input().split()) ”,让用户输入数组的元素总数a和给定减值b。
“c=list(map(int,input().split()) ”,将数组中的元素储存在列表c中。
“d=0
for i in range(0,len(c)):
e=c[:]
e.remove(c[i])
for j in range(0,len(e)):
if c[i]-e[j]==b:
d+=1 ”,令d为符合条件的数对总数,初始值为0,接着遍历c中元素:令e=c[:],将c[i]删除,再遍历e中元素,查找符合数对条件的两个数(即c[i]-e[j]==b),每查找到一个,就令d+1。
“print(d) ”,打印d的最终结果。
运行效果展示:
(声明:以上内容均为原创)