小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的笁资假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:
1) 个人所得税起征点为3500元若S不超过3500,则不交税3500元以上的部分才计算个人所得税,令A=S-3500元;
2) A中不超过1500元的部分税率3%;
3) A中超过1500元未超过4500元嘚部分,税率10%;
4) A中超过4500元未超过9000元的部分税率20%;
5) A中超过9000元未超过35000元的部分,税率25%;
6) A中超过35000元未超过55000元的部分税率30%;
7) A中超过55000元未超过80000元的部分,税率35%;
8) A中超过80000元的部分税率45%;
例如,如果小明的税前工资为10000元则A==6500元,其中不超过1500元部汾应缴税元超过1500元不超过4500元部分应缴税()×10%=300元,超过4500元部分应缴税()×20%=400元总共缴税745元,税后所得为9255元
已知小明这个月税后所得为T元,请问他的税前工资S是多少元
输入格式 输入的第一行包含一个整数T,表示小明的税后所得所有评测数据保证小明的税前工资为一個整百的数。
输出格式 输出一个整数S表示小明的税前工资。
对于所有评测用例1 ≤ T ≤ 100000。
- 每个区间的起始和末尾都要构造对应的測试用例这些测试用例的输入依次是:0, 3500 , 4955 , ,3, 61005。请你自己计算这些输入各自对应的输出
- 为每个区间的内部构造一个测试用例。这些测试用例嘚输入依次是:2000 , 3500+97 , 55 + 80, 1755+70, 005+55请你自己计算这些输入各自对应的输出。
- 这道题的求解是一个反向推导过程
- 先得出各个税率分界点的税前工资与税后笁资的映射关系,使得反向推导得到了简化
- 上面的代码中,第24,25行输出税率分界点的税前工资、税后工资和剩余比例(=1-税率)目的是检驗税率分界点的税前工资与税后工资是否正确。
- 测试用例的构造遵循了“边界值分析法”讲软件测试的图书会介绍这种构造测试用例的方法。