java模拟实现微信红包算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java模拟实现微信红包算法本⽂实例为⼤家分享了java实现微信红包算法的具体代码,供⼤家参考,具体内容如下
实现过程
1.代码如下(⽰例):
import java.math.BigDecimal;
import java.util.ArrayList;
public class GenRedPacket {
static ArrayList<BigDecimal> list = new ArrayList<BigDecimal>();;
public static BigDecimal bianLiJia(ArrayList<BigDecimal> list) {
BigDecimal b = new BigDecimal("0");
for (int i = 0; i < list.size(); i++) {
b = b.add(list.get(i));
}
return b;
}
public static void bianLiJian(BigDecimal b1, BigDecimal b2) {
if (bianLiJia(list).doubleValue() < b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b1.subtract(b3);
int i = 0;
list.set(i = (int) (Math.random() * (b2.intValue())), list.get(i).add(b4));
} else if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b3.subtract(b1).divide(b2, 2, BigDecimal.ROUND_FLOOR);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).doubleValue() > b4.doubleValue()) {
list.set(i, list.get(i).subtract(b4));
}
}
}
if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b3.subtract(b1);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).doubleValue() > b4.doubleValue()) {
list.set(i, list.get(i).subtract(b4));
}
}
bianLiJian(b1, b2);
}
}
public static ArrayList<BigDecimal> genRedPacket(String total, int count) {
BigDecimal b1 = new BigDecimal(total);
BigDecimal b2 = new BigDecimal(count);
for (int i = 0; i < count; i++) {
String s = String.valueOf(((int) (Math.random() * (Integer.parseInt(total) + 1)))
+ ((int) (Math.random() * 100) + 1) / 100.0);
BigDecimal b3 = new BigDecimal(s);
list.add(b3);
}
bianLiJian(b1, b2);
return list;
}
public void fhb(String total, int count) {
genRedPacket(total,count);
int i = 1;
for(BigDecimal b:list) {
System.out.println("第"+i+"个红包:"+b+"元");
i++;
}
}
}
2.代码如下(⽰例):
import java.text.ParseException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
GenRedPacket dp = new GenRedPacket();
System.out.print("请输⼊要发红包⾦额与个数:");
String s1 = scanner.next();
int a1 = scanner.nextInt();
dp.fhb(s1, a1);
}
}
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

相关文档
最新文档