给出了数字L的列表,以及另一个数字参数 threshold 。问题是返回最小的正整数k,以便将前面的k个倒置项加起来大于 threshold (或者,如果找不到这样的k,则返回-1)。
示例:
>>> M = [0.5, 3.5, 2.0, 7.0, 1.0]
>>> overflow(M, 10)
-1
>>> overflow(M, 2.5)
3
>>> overflow(M, 2.2)
2
我不擅长编写代码而根本不理解它。
我知道你需要做的例如(A / A**A
)来得到乘法逆,然后将它们加在一起。这需要持续到A> M(阈值)。如果所有乘法反转都不超过M,则返回-1。然后返回您一起添加的数字量。我只是不知道怎么把它们放在一起。
答案 0 :(得分:0)
def overflow(L, threshold):
total = 0
for i,num in enumerate(L):
total += 1.0/num
if total > threshold:
return i
return -1