java小练习:微信红包

该博客介绍了一个简单的Java程序,用于模拟微信红包的发放。用户可以输入总金额和红包个数,程序会随机分配每个红包的金额,确保最后一个红包包含剩余所有金额。程序中使用了Random类来生成随机红包金额,并进行了边界条件的处理,以确保每个红包的合法性。
package 微信红包;
import java.util.Random;
import java.util.Scanner;
public class Weixinhongbao {

	public static void main(String[] args) {
	System.out.println("---------微信红包-----------");
	Scanner sc=new Scanner(System.in);
	System.out.println("请示如红包的总金额(元):");
	double total=sc.nextDouble();
	System.out.println("请输入红包的个数(个):");
	int bagCount=sc.nextInt();
	
	double min=0.01;//红包最小金额
	Random c=new Random();
	for(int i=1;i<bagCount;i++) {
		/*
		 * 本次红包可以用的最大金额=可分配的金额-(红包个数-已发出的红包数)*红包的最小金额
		 */
		double max=total-(bagCount-i)*min;//下一个红包能包的最大面额
		double bound=max-min;
		double safe=c.nextInt((int)(bound*100))/100;//限制小数点后面位数
		double money=safe+min;//由于random的最小值为0.01,通过这种形式进行限制
		total=total-money;//发完这个红包后的剩余钱数
		System.out.println("第"+i+"个红包;"+String.format("%.2f", money)+"元");
	}
	System.out.println("第"+bagCount+"个红包;"+String.format("%.2f", total)+"元");
	
		// TODO 自动生成的方法存根

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值