# -*- coding: UTF-8 -*-
'''
输入一个正整数,把所以连续数和为给定正整数的序列找出来
如输入27, 有2~7 8~10 13~14
当然,输入4 16时无解
其实还有另外一个思路,
sumOfGiven=(indexfirst + indexlast)*count/2
indexlast=indexfirst+count-1
sumOfGiven已知,遍历count取[2,count/2+1],就能求得序列了,这个算法可以通过多线程求
'''
def ComputGivenSum(sumOfGiven):
first=1
last=first+1
tempSum =first+last
while(1):
if first>sumOfGiven/2:
break
if tempSum > sumOfGiven:
tempSum-=first
first+=1
elif tempSum < sumOfGiven:
tempSum+=last+1
last+=1
else:
print "[%d~%d]" %(first, last)
tempSum-=first
first+=1
#ComputGivenSum(27)
ComputGivenSum(15)
连续整数的固定和
最新推荐文章于 2024-03-05 21:24:13 发布