オファー安全性の研究ノート(C#)を証明する - 正の数と連続したシーケンスSを

タイトル説明

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

話題のA.分析

        タイトルは、いくつかのポイントは、に注意を払う必要があります。

        1.このリストは、連続した正のシーケンス、および2つの数の最小値です。

        ための特性の2などのアレイは、以下の式を用いて算出することができます。(すなわち、その合計の100方法1:(1 + 100)* 100/2)。

        配列1.番号:注意することは、タイトルのような2点のみが見え、次のステップは、3つの概念アルゴリズムの核心です。2.アレイ実用的で。3.ターゲットのアレイ。

        順に配列し、実際=ターゲットとは、その目的を達成することができ、アレイと大きな数字と1つ先の小数を持つ必要性を探し続けする場合には、

        アレイは>実際のターゲットとは、この配列の10進数を前方に移動させる場合と比較して、最小数の少ないを有します。

        それは次いで多数、ビビああを追加して実際の<ターゲットとアレイは、多数のアレイ内の番号を前方に移動したとき。

II。コードの実装

使用してSystem.Collections.Generic;
 クラスのソリューション
{ 
    公共リスト<リスト< int型 >> FindContinuousSequence(int型SUM)
    { 
        // ここに壁紙コードを記述
         //は、最終的な出力配列を定義 
        リスト<リスト< int型 >> RET = 新しい新しいリスト<リスト< int型 >> ();
         // :I = 1の定義、J = 2、理由は
        int型 I = 1、J = 2 ;
         // 少数のように、2の最終出力アレイの最小数として1:方法停止条件。和の半分を超えないようにすることができ、それが合計よりも大きいが、の和を超え、多数の10進数未満である必要があり
        、一方を +(私は(合計< 1)/ 2私は<&& J)
        { 
            // カウントに1を加える方法100):(例えば、連続番号は、それが加算式(小数多数であってもよいので+)*長さ/ 2 
            INT tmpSum =(Iは、J + 1)* (J - Iは、+ 1)/ 2 ;
             // 配列が目標数未満である場合、多数を加える必要が増加
            IF(tmpSum < SUM)
            { 
                J ++を; 
            } 
            // 等しいわずかに出力する
            他の IF(tmpSum == SUM )
            { 
                // 配列の定義は、配列の長さは、IJの間の長さであり、
                INTは [] =進新しい新しい INT [J - Iは、+ 1 ];
                 // 配列IJ由来する実行サイクル
                INT K = I、L = 0 ; K <= J、K ++、L ++ 
                { 
                    進[L] = K; 
                } 
                // この配列は、リストに追加されているが定義 
                ret.Add(新しい新しいリスト< 整数 > (進を));
                 // そう実行する++ iはH ++およびJは、それを行う方法の他のある場合 
                、私は++ 
                J ++ ; 
            } 
            // 配列は、ターゲット番号、小数プラス1、そうアレイの数よりも大きい場合少数の右
            
            { 
                私は ++ ; 
            } 
        }
        // リストに戻る
        リターンRET; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/WeiMLing/p/11079799.html