发红包

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值