和為S的連續正數序列

2021-09-26 05:01:34 字數 1286 閱讀 8564

小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為s的連續正數序列? good luck!

輸出描述:

輸出所有和為s的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序。

定義兩個索引,begin索引初始化指向1的位置,end索引初始化指向2的位置,由於序列中元素的個數至少為兩個,所以begin在遍歷到(s+1)/2時停止。則該序列為從begin開始到end結束的陣列。

如果該陣列的值等於s,則將該序列儲存下來。

如果該陣列的值大於s,則將begin+1,相當於將陣列中最小的數字去除。

如果該陣列的值小於s,則將end+1,相當於加入乙個新的數字。

python**:

# -*- coding:utf-8 -*-

class solution:

def findcontinuoussequence(self, tsum):

# write code here

if tsum < 3:

return none

begin = 1

end = 2

mid = (tsum + 1) / 2

number_list =

numberofsum = begin + end

while begin < mid:

if numberofsum == tsum:

while numberofsum > tsum and begin < mid:

numberofsum -= begin

begin += 1

if numberofsum == tsum:

end += 1

numberofsum += end

return number_list

def gen_list(self,begin,end):

number_list =

for i in range(begin,end+1):

return number_list

if __name__ == '__main__':

solution = solution()

print(solution.findcontinuoussequence(3))

和為S的連續正數序列

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的...

和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...

和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...