假设你有400元,每次用一半,用了4次之后,你还剩多少元?用了5次之后呢?
假设你有400元,每次用一半,用了几次之后,你还剩1角钱?
for循环呀
遍历或者递归
用了N剩下多少给个递归
参考下
有用采纳一下
public static BigDecimal getMoneyByCount(BigDecimal money, Integer count){
if (count ==0 ){
return money;
}
BigDecimal divide = money.divide(new BigDecimal(2),2, BigDecimal.ROUND_HALF_UP);
count--;
return getMoneyByCount(divide,count);
}
遍历的
public static BigDecimal getMoneyByCount(BigDecimal money, Integer count){
for (int i = 0; i <count ; i++) {
BigDecimal divide = money.divide(new BigDecimal(2),2, BigDecimal.ROUND_HALF_UP);
money =divide;
}
return money;
}
用5次后剩余 400/ 2^5 =12.5 (元)
所以用N次后剩余400/2^n
因为400元并不能保证每次都巧好平分为N角,所以平分中可能存在四舍五入处理,估计就是这个难度的地方,就是以分计,也有不能平分的情况,对此题目有什么要求。