简易红包算法
设置异常
public class RedPackage extends Exception {
public RedPackage() {
// TODO Auto-generated constructor stub
}
public RedPackage(String s) {
super(s);
}
}
编写红包算法
package homework;
import java.math.BigDecimal;
import java.util.ArrayList;
public class Hongbao {
static ArrayList<BigDecimal> l = new ArrayList<BigDecimal>();
public static ArrayList<BigDecimal> genRedPadcket(String total, int count) throws RedPackage {
BigDecimal b =new BigDecimal(total);
BigDecimal b2;
for (int index = 1; index <= count; index++) {
if(index==1) {
b= b.subtract(BigDecimal.valueOf(count*0.01));
}
if(index==count) {
b=b.add(BigDecimal.valueOf(0.01));
l.add(b);
return l;
}
b2=b;
b=b.multiply(BigDecimal.valueOf(Math.random())).setScale(2, BigDecimal.ROUND_HALF_UP);
//b=b.add(BigDecimal.valueOf(0.01));
if(b.add(BigDecimal.valueOf(0.01)).doubleValue()<0.01) {
throw new RedPackage("红包必须大于0.01");
}
l.add(b.add(BigDecimal.valueOf(0.01)));
b=b2.subtract(b);
}
return l;
}
程序入口 主函数
public static void main(String[] args) throws RedPackage {
Scanner sc = new Scanner(System.in);
System.out.println("请输入红包大小和红包数量");
String s = sc.next();
int i = sc.nextInt();
genRedPadcket(s, i);
for(BigDecimal n:l) {
System.out.println(n);
}
}
运行结果
错误会出现自定义的异常