Python:溢出总和

时间:2013-10-04 20:41:49

标签: python

给出了数字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。然后返回您一起添加的数字量。我只是不知道怎么把它们放在一起。

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