-2

给出了一个数字列表 L 以及另一个数字参数threshold。问题是返回最小的正整数 k,以便将 : 中的前 k 个反转项求和大于阈值(或者,如果找不到这样的 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。然后返回您相加的数字数量。我只是不知道如何把它们放在一起。

4

1 回答 1

0
def overflow(L, threshold):
  total = 0
  for i,num in enumerate(L):
    total += 1.0/num
    if total > threshold:
      return i
  return -1
于 2013-10-04T20:46:22.907 回答