发红包案例

编程入门 行业动态 更新时间:2024-10-28 02:22:55

发红包<a href=https://www.elefans.com/category/jswz/34/1770649.html style=案例"/>

发红包案例

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();}}
}

更多推荐

发红包案例

本文发布于:2024-02-11 06:03:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679537.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:案例   发红包

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!