// 分账
List<Integer> payTimeAmounts = new ArrayList() {{
add(payTime1);
add(payTime2);
add(payTime3);
}};
int i = 0;
int j = 0;
int idDif = 0;
List<PayIdAmount> result = new ArrayList<>();
outer:
for (; i < payTimeAmounts.size(); ) {
Integer payAmount = payTimeAmounts.get(i);
inner:
for (; j < idAmounts.length; ) {
IdAmount ia = idAmounts[j];
String id = ia.getId();
int amount = ia.getAmount() - idDif;
if (amount > payAmount) {
if (payAmount > 0) {
PayIdAmount pia = new PayIdAmount();
pia.setPayTime(i);
pia.setId(id);
pia.setAmount(payAmount);
result.add(pia);
}
i++;
idDif += payAmount;
continue outer;
} else if (amount == payAmount) {
if (amount > 0) {
PayIdAmount pia = new PayIdAmount();
pia.setPayTime(i);
pia.setId(id);
pia.setAmount(amount);
result.add(pia);
}
i++;
j++;
idDif = 0;
continue outer;
} else {
if (amount > 0) {
PayIdAmount pia = new PayIdAmount();
pia.setPayTime(i);
pia.setId(id);
pia.setAmount(amount);
result.add(pia);
}
payAmount -= amount;
j++;
idDif = 0;
continue inner;
}
}
}
分账算法代码
最新推荐文章于 2023-11-27 01:21:27 发布