代码拉取完成,页面将自动刷新
import java.util.Random;
public class RandomRedEnvelope extends RedEnvelope { //随机红包
double minMoney; //可以抢到的最小金额
int integerRemainMoney; //红包中的钱按分表示
int randomMoney; //给抢用户的钱
Random random;
RandomRedEnvelope(double remainMoney,int remainPeople) {
random = new Random();
minMoney = 0.01; //minMoney的值是0.01,保证用户至少能抢到0.01圆
this.remainMoney = remainMoney;
this.remainPeople = remainPeople;
integerRemainMoney =(int)(remainMoney*100); //把钱按分表示
if(integerRemainMoney<remainPeople*(int)(minMoney*100)){
integerRemainMoney = remainPeople*(int)(minMoney*100);
this.remainMoney =(double)integerRemainMoney;
}
}
public double giveMoney() {
if(remainPeople<=0) {
return 0;
}
if(remainPeople ==1) {
money = remainMoney;
remainPeople--;
return money;
}
randomMoney = random.nextInt(integerRemainMoney);
//该金额randomMoney在[0,integerRemainMoney) 区间内
if(randomMoney<(int)(minMoney*100)) {
randomMoney = (int)(minMoney*100); //保证用户至少能抢到1分
}
int leftOtherPeopleMoney =integerRemainMoney-randomMoney;
//leftOtherPeopleMoney是当前用户留给其余人的钱(单位是分)
int otherPeopleNeedMoney = (remainPeople-1)*(int)(minMoney*100);
//otherPeopleNeedMoney是保证其他人还能继续抢的最少金额(单位是分)
if(leftOtherPeopleMoney<otherPeopleNeedMoney) {
randomMoney -=(otherPeopleNeedMoney-leftOtherPeopleMoney);
}
integerRemainMoney = integerRemainMoney - randomMoney;
remainMoney = (double)(integerRemainMoney/100.0); //钱的单位转成圆
remainPeople--;
money = (double)(randomMoney/100.0);
return money; //返回用户抢到的钱(单位是圆)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。