题目:
解题思路 :
1,分治,找到分段的切割点
2,找到终止条件
答案:
java实现
class Solution {
public double calculateTax(int[][] brackets, int income) {
double tax=0D;
double prev=0D;
for(int i=0;i<brackets.length;i++){
if(income>0){
double val = brackets[i][0]-prev; //区间税额
double money = (val>income)?income:val; //要交税的金额
tax += money*brackets[i][1]/100; //税额
income-=money; // 减去已经计算过的金额
prev=brackets[i][0]; //下一个计税的起点
}else{
break;
}
}
return tax;
}
注意点: 税额要使用浮点型,不要用整型,不然会被坑到。