题意整理。
- 给定个人所得税的计算公式:应纳税额=(工资薪金所得-扣除数)×适用税率-速算扣除数。
- 然后给定公式中各个参数,以及实体对应的薪水,计算对应实体的个人所得税。
方法一(模拟)
1.解题思路
- 首先计算全月应纳税所得额t。
- 然后按表中所给的范围,分别进行计算。
图解展示:
2.代码实现
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
//将小明、小军、小红加入到集合
employees.add(new Employee("小明",2500.0));
employees.add(new Employee("小军",8000.0));
employees.add(new Employee("小红",100000.0));
//遍历集合
for(Employee emp:employees){
//输出对应的个人所得税
System.out.println(emp.getName()+"应该缴纳的个人所得税是:"+String.format("%.1f",tax(emp.getSalary())));
}
}
//计算个人所得税
public static double tax(double salary){
//全月应纳税所得额
double t=salary-3500;
//按表中所给的范围,分别进行计算
if(t<=0){
//小于0,不需要扣税
return 0.0;
}
//其它情况,按所给公式及表中数据计算
else if(t>0&&t<=1500){
return t*0.03-0;
}
else if(t>1500&&t<=4500){
return t*0.10-105;
}
else if(t>4500&&t<=9000){
return t*0.20-555;
}
else if(t>9000&&t<=35000){
return t*0.25-1005;
}
else if(t>35000&&t<=55000){
return t*0.30-2755;
}
else if(t>55000&&t<=80000){
return t*0.35-5505;
}
else{
return t*0.45-13505;
}
}
}
class Employee{
private String name;
private double salary;
public Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
}
3.复杂度分析
- 时间复杂度:只需一次逻辑判断,以及常数次计算,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。