2303. 计算应缴税款总额

class Solution {
public:
    double calculateTax(vector<vector<int>>& brackets, int income) {
      double ans = 0;
      
      for(int i = brackets.size() - 1; i > 0; --i){
        auto &vec = brackets[i];
        auto &vec1 = brackets[i - 1];
        
        // 当income不在这个区间时直接跳过
        if(vec[0] > income && vec1[0] > income){
          continue;
        }
        
        // 中间的差值
        int diff = income - vec1[0];
        
        // 这部分差值所应该交的税,这里是实际值的100倍
        ans += (diff * vec[1]);

        // 当前剩余未计算的income  
        income = vec1[0];
      }
      
      // 计算最小的范围,应交的税,这里是实际值的100倍
      ans += (income * brackets[0][1]);
      
      // 计算实际税
      ans /= 100;
      
      return ans;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值