41.和为S的连续整数序列(python)

题目描述

小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!

输出描述:

输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序

 1 class Solution:
 2     def FindContinuousSequence(self, tsum):
 3         # write code here
 4         if tsum < 3:
 5             return []
 6         low=1
 7         high=2
 8         res=[]
 9         while low<high:
10             curSum = sum(range(low,high+1))
11             if curSum==tsum:
12                 res.append([i for i in range(low,high+1)])
13                 high+=1
14             elif curSum<tsum:
15                 high+=1
16             else:
17                 low+=1
18         return res

2019-12-25 18:54:46

posted @ 2019-12-25 18:56  Assange  阅读(248)  评论(0编辑  收藏  举报