そして、Sは正の整数の連続したシーケンス(ダブルポインタ方式)であります

タイトル説明

暁明は、彼が計算するのに必要と9〜16は、彼はすぐに正しい答えは100で書いた、数学の宿題をやっていた、数学、1日の非常に好きです。彼はこれに満足していなかった。しかし、彼は(少なくとも二つの数字を含む)100がどのように多くの連続した正数列の種類疑問に思いました。18,19,20,21,22:長い前に、彼は連続した正の数と100のシーケンスの別のセットを得ました。今、あなたの質問は、あなたもすぐにすべての正と連続シーケンスS?幸運を識別することができます!

出力説明:

すべての正の出力と連続数列S. 開始昇順に従ってシーケンス番号との間の昇順で昇順

解決:ダブルポインタ方法、(スライディングウィンドウ法)

クラス解決{
 パブリック
    ベクトル <ベクトル< 整数 >> FindContinuousSequence(int型の合計){ 
        ベクトル <ベクトル< 整数 >> allRes。
        INT phigh = 2、プラウ= 1 
         
        一方、(phigh> プラウ){
             int型 CUR =(phigh +プラウ)*(phigh -プラウ+ 1)/ 2 もし(CUR < 合計)
                phigh ++ ; 
             
            もし(CUR == 合計){ 
                ベクトル <int型 > のres;
                以下のためにint型 ; I <= phigh I ++はI =プラウ
                    res.push_back(I)。
                allRes.push_back(RES)。
                耕す ++ ; 
            } 
             
            場合(CUR> 和)
                プラウ ++ 
        } 
         
        戻りallResと、
    } 
}。

 

おすすめ

転載: www.cnblogs.com/cstdio1/p/11242623.html