模擬微信隨機發紅包


import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RedPacket {
    public static void main(String[] args) {
        System.out.println("紅包總金額是" + 10 + "元");
        System.out.println(randomRedPacket(10, 5));
    }

    //隨機發紅包案例
    //紅包用list集合裝起來
    public static List<Integer> randomRedPacket(int m, int n) {
        //m元發n個紅包
        //舉例:10元發3個紅包
        //最少一分錢,最多不超過剩餘金額平均數的2倍
        //第一個紅包範圍應該在0.01 - 3.33*2
        //第一次發完之後剩下的至少是3.34

        List<Integer> list = new ArrayList<>();

        Random r = new Random();

        int leftMoney = m;
        int leftCnt = n;

        for(int i= 0; i<n-1; i++){
            int money = r.nextInt(leftMoney/leftCnt) + 1;
            list.add(money);
            leftCnt--;
            leftMoney -= money;
        }
        list.add(leftMoney);
        return list;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章