用户:传说中的巨大佬查看:1 回复:3 评论:1 创建时间:2018-11-17T20:45:56
刷塔过程中确实遇到了一些有难度的题目,所以就挑几个有意思的题目给大家做一下讲解,大佬请无视。。。。
刷塔不是目的,学会python语法,学习解决问题的思路才是王道,废话不多说了,来看题目。(第五个区间应该是题目出错了,应该是30001~40000,我直接改过来了)
题目给的输入数据是10000,输出是290,应该有很多同学不知道这个数字是怎么来的吧,请继续往下看。
根据题目,这个是分段计税的问题,工资10000元,分成这么几段
1~5000 的区间有 5000元,本区间税率为0,不计税
5001~8000 的区间有3000元,本区间税率3%,税费为3000*0.03=90元
8001~17000 的区间有2000元,本区间税率10%,税费为2000*0.1=200元
所以最终的税率为290元。
那么再举个例子,如果工资是35000,税费应该怎么计算呢?
工资35000可以分成如下几个区间:
1~5000 的区间有 5000元,本区间税率为0,不计税
5001~8000 的区间有3000元,本区间税率3%,税费为3000*0.03=90元
8001~17000 的区间有9000元,本区间税率10%,税费为9000*0.1=900元
17001~30000的区间有13000元,本区间税率20%,税费为喵元
30001~40000的区间有5000元,本区间税率为25%,税费为5000*0.25=1250元
所以最终的税费为4840。
好了,到这里算法已经基本明白了。接下来该写代码了。
我的建议是,准备2个列表
q=[0,5000,8000,17000,30000,40000,60000,999999999] #分段计税的区间
s=[0,0,3,10,20,25,30,30] #与上面区间对应的税率
然后用一个循环,和区间来比较,如果工资大于区间,那么就计算整个区间的税费,如果区间大于工资,就计算该区间内的工资,像上面的例子,35000元工资,30000元之前的都是完整的区间税费,区间有多大,税费就有多少,只有最后5000元在25%的区间里,算完这5000的税费后就跳出循环。
题目完成~