import java.util.*;
/**
发红包
1.红包金额
2.红包个数
3.最后一个红包金额
总金额 / 发红包个数 * 2
例如 100 / 50 * 2 = 4 范围随机
100 / 20 * 2 = 10 范围随机
**/
public class RedPacke {
public static void redBao(Double money,int max) {
Double toble=money;//红包金额
int number=max; //红包个数
double[] s=new double[number];
Double sum=0.0;
int i=0;
while(i<number) {
// System.out.println("sum"+sum);
Double toble1=(toble-sum)/(number-1);
double numberRed=Math.random()*toble1*5 ;//拿到红包总金额随机数
double a=Math.round(numberRed*100)/100.0;//得到金额元角分
//红包金额除以个数不能小于0.01
if(toble/number>=0.01) {
//单次红包金额不能小于0.01
if(a>=0.01) {
if(i<number-1) { //不是最后一个红包
s[i]=a;
sum+=s[i];
System.out.println("数组中"+i+":"+s[i]);
} else { //最后一个红包
s[number-1]=toble-sum;
Double last=Math.round(s[number-1]*100)/100.0;
System.out.println("最后数组中"+i+":"+last);
sum+=s[i];
}
i++;
} //else {
//System.out.println("小于0.01");
//}
}else {
System.out.println("红包个数过多");
break;
}
}
System.out.println("总计"+sum);
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入红包金额:");
double money= scanner.nextDouble();
System.out.print("请输入红包个数:");
int number1=scanner.nextInt();
redBao(money,number1);
}
}
发红包
最新推荐文章于 2023-05-16 17:11:10 发布