发红包算法简单实现
2015-02-14 23:54
155 查看
没到年底,红包就满天飞,自己实现了个简单的发红包算法,简单测试没发现明显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;
}
//分红包
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;
}
相关文章推荐
- JAVA实现 简单抢红包算法,模拟真实抢红包。
- JAVA实现简单抢红包算法(模拟真实抢红包)
- python 实现红包随机生成算法的简单实例
- 学习C#从俄罗斯方块开始(二)俄罗斯方块的规则和算法的简单实现
- 一个简单的随机数生成算法实现(C++)
- 一种简单的数据库分流的算法及实现
- .net简单算法实现无限级分类(一)
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)
- java实现循环左移和右移的简单算法
- 【项目】优化算法设计(二):程序的简单实现
- 转:无限级分类的简单算法实现及代码重点讲解
- 数独问题的一种简单算法代码实现
- 全排列的泛型算法的简单实现
- 又一种JSP实现的Java通用简单分页算法
- JSP实现的Java通用简单分页算法之三
- 一个简单的随机数生成算法实现(C++)
- (C语言)二分算法实现简单猜数
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)
- net简单算法实现无限级分类(一)
- 使用正向最大匹配算法实现中文分词简单模型-用trie树实现