[java]お年玉の減算アルゴリズムの真似
12070 ワード
【java】お年玉の減算アルゴリズムを真似する
くどくど言わないで、直接コードをつけます.直接コピー可能
実用的だと思ったら、「いいね」をクリックし、サポートに感謝し、不定期にブログを更新し、興味のある人は注目することができます.
くどくど言わないで、直接コードをつけます.直接コピー可能
package com.yuezhi.util;
import java.math.BigDecimal;
/**
* @ProjectName yuezhi
* @ClassName HongBaoUtils
* @Description
* @Author Wednesday
* @Date 2020/2/4 14:45
* @Version 1.0
**/
public class HongBaoUtils {
/**
* 200
*
* 1 0.01
*/
public static BigDecimal getOneRandomNumber(BigDecimal bd) {
Double number = bd.setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
if (number >= 200) {// ≥200,
// 150
double db = (Math.random() * (190 - 150)) + 150;
BigDecimal bg = new BigDecimal(db);
return bg.setScale(2, BigDecimal.ROUND_DOWN);
} else if (number >= 1) {// ≥1, N
return getOneRandomNumber(BigDecimal.valueOf(0), bd);
} else {// , 0.01
return new BigDecimal(0.01);
}
}
public static BigDecimal getOneRandomNumber(BigDecimal minBig, BigDecimal maxBig) {
// ,
double db = (Math.random() * (maxBig.subtract(minBig).setScale(2, BigDecimal.ROUND_DOWN).doubleValue()) + minBig.setScale(2, BigDecimal.ROUND_DOWN).doubleValue());
BigDecimal bg = new BigDecimal(db);
return bg.setScale(2, BigDecimal.ROUND_DOWN);
}
/**
* , , 50 0
*/
public static void main(String[] args) {
HongBaoUtils hongBaoUtils = new HongBaoUtils();
BigDecimal number = new BigDecimal(200);
int i =0;
while (number.doubleValue() > 0) {
i++;
BigDecimal oneRandomNumber = hongBaoUtils.getOneRandomNumber(number);
System.err.println(" ===>" + oneRandomNumber.setScale(2, BigDecimal.ROUND_DOWN));
System.out.println(" ===>" + number.setScale(2, BigDecimal.ROUND_DOWN));
number = number.subtract(oneRandomNumber);
}
System.out.println(" ===>"+i);
}
}
実用的だと思ったら、「いいね」をクリックし、サポートに感謝し、不定期にブログを更新し、興味のある人は注目することができます.