小明很喜歡數學,有一天他在做數學作業時,要求計算出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。現在把問題交給你,你能不能也很快的找出所有和...