python整数数列求和_Python算法题----求出和为S的所有连续正整数数列

从1开始,求出所有的和为21的连续正整数数列。比如1+2+3+4+5+6 和为 21, 6+7+8和为21。

解法:该题目仍然需要首尾两个指针,一个为start,一个为end。sum=start+end。 如果sum大于21,start后移,如果等于21,打印start到end的数列。start,end全部后移。如果小于21,end后移。指针移动时。注意,sum的值也要相应变化。def addSeq(n):

start, end = 1, 2

stop = (n+1) / 2

mysum = start + end

while start 

if mysum == n:

print range(start, end+1)

mysum -= start

start += 1

end += 1

mysum += end

elif mysum 

end += 1

mysum += end

else:

mysum -= start

start += 1

if __name__ == '__main__':

addSeq(21)

答案:

C:\Python27\python.exe E:/cyou-inc.com/test/test.py

[1, 2, 3, 4, 5, 6]

[6, 7, 8]

[10, 11]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值