1. 程式人生 > >python 和為S的連續正數序列

python 和為S的連續正數序列

elif mage last 問題 enc span ret 很快 少包

題目描述:

小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為S的連續正數序列? Good Luck!

 1 class Solution:
 2     def FindContinuousSequence(self, tsum):
 3         # write code here
 4         head =1
 5         last = 2
 6
sum = 3 7 r = [] 8 while last<= (tsum+1)/2: 9 if sum == tsum: 10 r.append(xrange(head,last+1)) 11 last = last + 1 12 sum = sum +last 13 elif sum<tsum: 14 last = last + 1 15 sum = sum + last
16 else : 17 sum = sum - head 18 head = head + 1 19 return r

技術分享圖片

python 和為S的連續正數序列