发红包算法简单实现

没到年底,红包就满天飞,自己实现了个简单的发红包算法,简单测试没发现明显bug,直接上代码了,命名有点不规范


        //分红包
private static void fenhongbao(Random rd, float totalNum, int peopleNum){
float reveage = keep2Dot(totalNum / peopleNum);
System.out.println("平均:" + reveage);
float perNum = 0;
float tmpSum = 0;
for(int i = 0; i < peopleNum; i++){
if(i == (peopleNum - 1)){
perNum = keep2Dot(totalNum - tmpSum);
}else{
float nf = keep2Dot(rd.nextFloat() + 0.5f);
perNum = keep2Dot(nf * reveage);
}
tmpSum += perNum;
System.out.println("第" + (i + 1) + "人" + "领了" + perNum + "元");
}
System.out.println("总共:" + keep2Dot(tmpSum));
}

private static float keep2Dot(float f){
f = Math.round(f * 100) / 100.0f; 
return f;
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值