题目的主要信息:
- 个人所得税的计算公式为:。
- 工资低于3500时不需要缴纳个人所得税
- 其中,扣除数为3500元,适用税率以及速算扣除数如下表所示:
- 请你补全代码中的 Employee 类,新建三个 Employee 对象,姓名分别是小明,小军和小红,他们的工资分别为 2500.0,8000.0,100000.0
- 并将他们按顺序存入一个集合中,遍历集合并计算他们应缴纳的个人所得税
- 个人所得税为 double 类型,保留一位小数
具体做法:
这道题看起来很复杂,但是其实只需要分几步走。
-
新建三个Employee类的实例,对其分别赋予初始值,然后将它们全部add进集合中。
-
遍历集合,将取出来的值计算全月应纳税所得额。
-
根据全月纳纳税所得额所在的区间计算应纳税额,这里需要优先判断是否工资会小于3500。
-
最后格式化输出。
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
//信息加入集合中
employees.add(new Employee("小明", 2500));
employees.add(new Employee("小军", 8000));
employees.add(new Employee("小红", 100000));
for(Employee e : employees){ //遍历这个集合
double tax = 0;
double income = e.getSalary() - 3500; //工资-扣除数=全月应纳税所得额
if(income <= 0) //收入少于3500,不用纳税
tax = 0;
//找到所属区间
else if(income <= 1500)
tax = income * 0.03;
else if(income <= 4500)
tax = income * 0.1 - 105;
else if(income <= 9000)
tax = income * 0.2 - 555;
else if(income <= 35000)
tax = income * 0.25 - 1005;
else if(income <= 55000)
tax = income * 0.3 - 2755;
else if(income <= 80000)
tax = income * 0.35 - 5505;
else
tax = income * 0.45 - 13505;
System.out.println(e.getName() + "应该缴纳的个人所得税是:" + String.format("%.1f", tax));
}
}
}
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;
}
}
复杂度分析:
- 时间复杂度:,常数时间
- 空间复杂度:,常数空间