运行结果示例:
请输入您要发的红包总金额:
10
请输入红包的份数:
10
总共有10.00元红包, 10个人可以抢到!
第1个人抢到1.56元红包, 剩下8.44元
第2个人抢到1.36元红包, 剩下7.08元
第3个人抢到0.35元红包, 剩下6.73元
第4个人抢到1.41元红包, 剩下5.32元
第5个人抢到1.58元红包, 剩下3.74元
第6个人抢到0.27元红包, 剩下3.47元
第7个人抢到0.68元红包, 剩下2.79元
第8个人抢到0.32元红包, 剩下2.47元
第9个人抢到0.65元红包, 剩下1.82元
第10个人抢到1.82元红包, 红包已抢完!
本轮抢红包中第10个人运气最佳!
提示:
可以设置最小红包的金额,如0.01元
需要用到产生随机数,请自行学习Math.random()
格式化时小数点后只保留两位,可以使用
import java.text.DecimalFormat;
参考文档
Java中格式化输出数字 /chuyouyinghe/article/details/51219436 Java随机函数 /VirusLL/article/details/71747225
import java.util.Random;import java.util.Scanner; import java.io.*; import java.text.DecimalFormat;public class Test {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入您要发的红包总金额:");Scanner inmoney = new Scanner(System.in); double money = inmoney.nextDouble(); System.out.println("请输入红包的份数:");Scanner inpeople = new Scanner(System.in); int people = inpeople.nextInt(); double sum,ans;System.out.println(ans/people);DecimalFormat a = new DecimalFormat("00.00");for(int i = 1; i <= people; i++) {if(i != people) {do {Random r = new Random();sum = r.nextDouble();sum = sum *(ans/people)*10;}while(sum>=money);money -= sum;String s = a.format(sum);String m = a.format(money);System.out.println("第"+i+"个人抢到"+s+"元的红包,剩下"+m+"元");}else {String m = a.format(money);System.out.println("第"+i+"个人抢到"+m+"元的红包, 红包已抢完!");}}}}