实现一个方法,输入int n,输出所有连续相加(等差数列,差为1)为n的场景。输出类型不限制。
n = 3 输出:1,2
n = 15 输出:1,2,3,4,57,84,5,6
#--*--coding:utf8--*--
def calsum(n):
sumsum = 0
preindex = 1
nextindex = 1
res = []
while nextindex < n/2:
sumsum += nextindex
while sumsum > n:
sumsum -= preindex
preindex += 1
if sumsum == n:
subres = []
for i in range(preindex,nextindex + 1):
subres.append(i)
res.append(subres)
sumsum -= preindex
preindex += 1
nextindex += 1
return res
print calsum(150)