2 Star 0 Fork 0

BESTI.IS.JAVA2018/20165337

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
RandomRedEnvelope.java 1.82 KB
一键复制 编辑 原始数据 按行查看 历史
yueyuan 提交于 7年前 . week6
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; //返回用户抢到的钱(单位是圆)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/BESTI-IS-JAVA-2018/20165337.git
git@gitee.com:BESTI-IS-JAVA-2018/20165337.git
BESTI-IS-JAVA-2018
20165337
20165337
master

搜索帮助