【发布时间】:2025-11-23 23:05:02
【问题描述】:
我正在尝试编写执行以下操作的代码:
-
在第一行中,它输入了两个以空格分隔的整数,第一行表示列表的长度,稍后将输入,第二行表示一个 int,称为
k,稍后将需要它。 -
在第二行,输入我说的列表
预期输出满足以下条件:
( i , j ) 对的数量,其中 ik.
问题:我不知道为什么我的代码会忽略某些对。我已经用许多测试用例进行了尝试,但它失败了 90%,因为输出的对比预期的要少。我知道我非常接近正确的结果,但我只是不知道我做错了什么。
有关我希望我的代码做什么的更准确信息,请查看此链接(无需注册或登录):https://www.hackerrank.com/challenges/divisible-sum-pairs/problem
这是我的代码:
#https://www.hackerrank.com/challenges/divisible-sum-pairs/problem
samples_and_k = [int(x) for x in input().split()]
num_list = [int(y) for y in input().split()]
num_list.sort()
counter =0
for i in range(0, samples_and_k[0]-1):
for j in range(i+1, samples_and_k[0]-1):
if (num_list[i]+num_list[i+1]) % samples_and_k[1] == 0:
counter += 1
print(counter)
这是一个例子:
输入:
6 3
1 3 2 6 1 2
预期输出:
5
MY代码的输出:
3
【问题讨论】:
-
请添加当前和预期的输出。
-
@Justlearnedit 我刚刚做到了。
-
用你自己的话说,写
for i in range(0, samples_and_k[0]-1):的时候,写-1的原因是什么?用您自己的话来说,如果您写了例如for i in range(0, 5):,您希望i具有什么价值?现在,您查看文档了吗?您尝试过吗?range的工作方式是否符合您的预期?
标签: python loops implementation