2013-10-04 60 views
-2

給出了一個數字列表L以及一個其他數字參數閾值。問題是返回最小的正整數k,以便對前面的k個倒數項進行求和:大於閾值(或者,如果不能找到這樣的k,則返回-1)。Python:溢出Sum

例子:

>>> 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

這個家庭作業? – Joe

+4

'1./A'比'A /(A * A)'容易得多,而'A/A ** A'離開了。開始編碼!當你有東西要展示時發佈。 –

+0

這個例子是否正確? – Bakuriu

回答

0
def overflow(L, threshold): 
    total = 0 
    for i,num in enumerate(L): 
    total += 1.0/num 
    if total > threshold: 
     return i 
    return -1 
+0

這對我有意義,但什麼是(我,num)?...因爲我還沒有使用枚舉可以使用範圍(len(L))嗎? – user2847983

+0

是的。 '我在範圍內(len(L))'和'num = L [i]'可以一起替換呼叫來枚舉 – inspectorG4dget

+0

它給了我錯誤 文件「」,第1行,在 內建。 TypeError:overflow()缺少1所需的位置參數:'threshold' 在哪裏添加閾值以消除此錯誤? – user2847983