案例"/>
发红包案例
package API;
import java.util.*;
/*** Author:jinpma* Date :2019/9/14*/
/*
1.名称:发红包案例
2.实现目标:输入红包总金额,红包个数,每个人随机抢到0.01¥~剩余钱数平均值的2倍
3.注意事项:分为最小单位,每个红包保留两位小数*/
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//输入,总金额double totalMoney = sc.nextDouble();//输入,分发红包的个数int totalCont = sc.nextInt();sendMoney(totalMoney,totalCont );}//总金额和红包总个数是不可变的,建议加上final修饰public static void sendMoney(final double totalMoney,final int totalCount){//定义剩余的金额和剩余的红包个数double leftMoney = totalMoney;int leftCount = totalCount;//红包的大小是随机产生的,满足0.01¥-剩余金额的平均值的2倍即可Random ran = new Random();//比如,10¥发3个包,第一个红包大小为:0.01-(10/3)*2List<Double> list = new ArrayList<>();for (int i = 0; i < totalCount - 1; i++) {double money = ran.nextDouble()*(leftMoney/leftCount)*2 + 0.01;//将每次抢到的红包存到list集合中list.add(money);//剩余金额数=总金额-红包大小leftMoney = leftMoney - money;leftCount --;}//最后一个红包大小即为剩余的金额list.add(leftMoney);for (Double j : list) {System.out.printf("%.2f",j);System.out.println();}}
}
更多推荐
发红包案例
发布评论