思路 本题主要分为两种思路: 一种为正向,即一直使用循环语句和判断语句,通过计算所有情况最后得出结果 另一种是根据到手工资去推算税前所得工资 下面的示例是第二种方法,第一种方法比较常见
首先说明一下,a和d可以通过计算得到,但为了展示方便,直接将其列出
a为判断税收七点的一个界限,后面加的数字为各阶段税收 举个例子:比如说税后工资为4999,那么工资一定是在5000以上的,所以再判断税收的时候需要考虑的是另一个区间的纳税比例
b为税收税率从小到大排列
c为税收金额从小到大排列
d为加上3500的不纳税金额以后的纳税区间
之后的循环,先判断其处在哪一个纳税区间,之后先计算处在 整 区间内部的税收,最后计算税前收入
S = (S-b[i]*d[i])/(1-b[i]) 所用的公式为: > (税前收入-之前整区间税前收入)x 当前区间税率 ==(当前收入-之前整区间税前收入)可以看到,在代码部分最后批注有一个80分的输出,即将S转换为int型 在debug的时候发现了一个有趣的问题即:
测试用例
税前工资:100000 税后工资:70080如下测试结果
可以看到如果将debug的结果人为带入计算是没有问题的,但是出现了一个有趣的问题:
如图,本来测试结果应该是10000,但是会出现一个无限循环的近似数 通过向老师请教,和查阅相关资料,了解到了python的存储机制问题 大致概括如下