あなたは自分の運の王を作るためにマイクロ手紙の封筒をするのJavaを使用することを教えて!

javaのマイクロチャネル赤

 マイクロチャネルは、人々の日常生活はと不可分である今のApp 、日常のコミュニケーション、小規模な転送、ビデオを簡単に呼び出します。

 

マイクロ手紙の封筒は、人々が夕食の後に友達と食べに出かけ、ほとんどの機能を使用することである AA マイクロ手紙の封筒、休日、家族や友人が赤い封筒を送信するために......

 

この記事では、使用教え javaの小さな赤い封筒のプロジェクトであることを!

注意事項

量に関連する点、2つの小数点変換操作の値型は留意すべきであるため。

プログラムが比較的単純であり、それは各赤色で最大値を達成しない 0.01 赤平均残り2 倍数性を。

/ *

 *赤い封筒の設計要件:

 * 1-赤最小0.01、最大200

 2つの小数点以下の桁数の宗派でお金の* 2 - 赤い封筒

 * 3 - 個々の赤の値は、係数を設定することで、回避するために、大きすぎます

 * 4 - 封筒は、合計金額を満たします

 * * / publicクラスRedPacketUtil {

    //赤マイクロチャネルの最大値と最小値、および赤色係数の最大量

    プライベート静的最終フロートMINMUM = 0.01f;

    プライベート静的最終フロートMAXMUM = 200.00f。

    プライベート静的最終フロートTIMES = 2.1f;

    

    //現在の値を決定し、量が正確です

    パブリックブールisRight(フロートお金、int型のカウント数){

        //現在の平均値を計算

        AVE =フロート(浮き)お金/数えます。

        IF(AVE <MINMUM){

            falseを返します。

        }そうであれば(AVE> MAXMUM){

            falseを返します。

        }

        trueを返します。

    }

    

    //赤封筒の各特定の量のために生成さ

    公共フロートredPacket(フロートお金、フロート分、フロートMAXS、int型のカウント数){

        //現在の数を決定します

        {(== 1カウント)場合

            //以下0.01元赤い封筒よりもそれを確保するために

            お金=お金> MINMUM?お金:MINMUM。

            リターン(フロート)(恐らくMath.round(金* 100))/ 100;

        }

        フロート最大= MAXS>お金?お金:MAXS。

        //エンベロープの単一の番号を生成し、赤色の精度を確保します

        フロート1 =(フロート)(Math.random()*(最大 - 最小)+分)。

        1 =(フロート)(恐らくMath.round(1 * 100))/ 100。 

        

        フロートmoneyRest =(お金 - 1);

        

        //赤い封筒の現在の数の妥当性を判断します

        IF(isRight(moneyRest、カウント - 1)){

            1を返します。

        }そうしないと{

            //再割り当て赤

            フロートAVE =(FLOAT)moneyRest /(COUNT-1);

            IF(AVE <MINMUM){

                リターンredPacket(お金、分、1カウント)。

            }そうであれば(AVE> MAXMUM){

                リターンredPacket(お金、1、最大カウント)。

            }

        }

        1を返します。

    }

    

    //スプリット封筒は、赤の指定された数を生成します

    公共の一覧<フロート> splitRedPacket(フロートお金、int型のカウント数){

        //現在の値を決定し、量が正確です

        (もし!isRight(お金、カウント数)){

            ヌルを返します。

        }

        //赤い封筒のそれぞれの数を記録

        一覧<フロート> rpList =新しいのArrayList <フロート>(); 

        //単一の赤い封筒の最大量

        フロート最大=(フロート)(金* TIMES)/数。

        最大=最大> MAXMUM?MAXMUM:最大。

        フロート= 0オン;

        //赤い封筒の各レコード番号の開始

        以下のために(INT I 0 =; I <数; I ++){

            1 = redPacket(お金、MINMUM、最大、カウント-i)を、

            rpList.add(1)。

            お金=お金 - 1。

        }

        rpListを返します。 

    }

    

    パブリック静的無効メイン(文字列[] args){

        RedPacketUtilのutil =新しいRedPacketUtil();

        リスト<フロート>結果= util.splitRedPacket(200、10)。

        System.out.println(結果)。

        //合計金額を確認

        フロート合計= 0;

        {(結果をiはフロート)のために

            合計=合計+ I;

        }

        System.out.println(合計)。

    }}

 

おすすめ

転載: www.cnblogs.com/heqingxiaohuo/p/12153541.html
おすすめ