交流|想招一个有些许编程思维的人,咋就这么难呢?出了一道编程题,很难吗???
2864
2023.04.18
2023.04.21
发布于 未知归属地

故事背景

我是一名从一线大厂出来创业的程序猿,由于预算有限,招的java程序岗位也就15K - 16K 吧,我知道这个价钱还要啥自行车?但是!!!我们平时写的业务逻辑也不需要高深的算法,我出的编程题目也是我项目中实际的一个案例,感觉还是蛮简单的,但至今都没有人能够给出满意的代码 ~
主要是我感觉,可能是java程序员在企业里写业务逻辑,时间久了,思维容易犯懒,稍微需要动动脑子的时候,发现已经锈豆了,附上这道题目,感兴趣的可以试一下。
提示一下:这道题目需要转化思维,否则一堆if - else会使得代码非常冗余,或者 用递归实现,代码的可读性与维护性都会收到影响 ~ 总之,转化思维!写一个简洁优雅的函数片段


附上题目 (评论本人附了一个思路,分享给大家学习,可以先自己想一下,写一下试试)

【累计预扣预缴个税计算】 请设计一个计算当月个税的函数,格式如下:
int computeCurTax ( int totalSalary , int curSalary ) { ... }

每个月个税缴纳的公式和规则描述如下(简化模型,和现实不符) :
image.png

理解 【累计预扣预缴纳税所得额】【简称 累计额度 或者 累计额】 :
这个值以年度为周期,每年年初重置为0 。
比如1月份发这一年的第一次工资6000元,那么这一次 累计额为0 ,这个月个税为6000*1%

到了2月份,你的工资发了9000元,在缴纳这次个税之前,你的累计额为6000元(一月份有6000元参与了纳税),所以你这月的工资有4000元的部分用1级税率来算,剩下的5000就只能用2级税率来计算了,所以 2月个税为 40001% + 50003%

到了3月份 ,你的工资大爆发,发了 6.5W元,此时你的累计额度 为 (6000+9000)1.5w, 那么你这个月的个税为:
2级剩余额度 :2.5w * 3%
+3级全部额度: (6-3)w *5%
+4级部分额度:(6.5-3-2.5)*8%

到了4月份 ,你的工资为 1W 元,由于你的累计额度目前是 6k + 9k + 6.5w = 8w , 这个月的1W可以全部在4级税率进行计算,那么4月个税为: 1W * 8%
.....
请编写一个函数 ,输入 之前已经积累的累计额度totalSalary 和 本月的工资 curSalary ,计算本月个税金额。如有需要也可以编写子函数进行调用。

int computeCurTax ( int totalSalary , int curSalary ) {
...
}

提示:题目的计算过程示例 只是作为帮助你理解这些名词的意义,代码这样子书写,会遇到很繁琐的if else 嵌套判断,请发挥你的编程思维,思考如何将这个函数 写的简洁优雅 ~

评论 (27)