题目描述:
小明很喜欢数学, 有一天他在做数学作业时, 要求计算出 9~16 的和, 他马上就写出了正确答案是 100 但是他并不满足于此, 他在想究竟有多少种连续的正数序列的和为 100(至少包括两个数) 没多久, 他就得到另一组连续正数和为 100 的序列: 18,19,20,21,22 现在把问题交给你, 你能不能也很快的找出所有和为 S 的连续正数序列? Good Luck!
- class Solution:
- def FindContinuousSequence(self, tsum):
- # write code here
- head =1
- last = 2
- sum = 3
- r = []
- while last<= (tsum+1)/2:
- if sum == tsum:
- r.append(xrange(head,last+1))
- last = last + 1
- sum = sum +last
- elif sum<tsum:
- last = last + 1
- sum = sum + last
- else :
- sum = sum - head
- head = head + 1
- return r
来源: http://www.bubuko.com/infodetail-2501531.html