タイトル説明
暁明は、彼が計算するのに必要と9〜16は、彼はすぐに正しい答えは100で書いた、数学の宿題をやっていた、数学、1日の非常に好きです。しかし、彼はこれで満足していなかった、彼は連続正数列の多くの種類が100(少なくとも二つの数字を含む)であるか疑問に思いました。18,19,20,21,22:長い前に、彼は連続した正の数と100のシーケンスの別のセットを得ました。今、あなたの質問は、あなたもすぐにすべての正と連続したシーケンスS?幸運を識別することができます!
出力説明:
すべての正の出力と連続数列S. 開始昇順に従ってシーケンス番号との間の昇順で昇順
解決策1:ロビン
# -*- coding:utf-8 -*-
class Solution:
def FindContinuousSequence(self, tsum):
small, big = 1, 2
_len = (tsum + 1) / 2
curr = small + big
res = []
while small < _len:
if curr == tsum:
res.append(range(small, big + 1))
while curr > tsum and small < _len:
curr -= small
small += 1
if curr == tsum:
res.append(range(small, big + 1))
big += 1
curr += big
return res