201612-2 工资计算 Java

思路:
税+税后所得A=税前工资S。
因为工资是整百的数,每次减100来判断。好理解但是超时。

import java.util.Scanner;
//只有90分,超时了
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        if(T < 3500) {
            System.out.println(T);
        }
        double x = 0;//税钱
        int S = 200000;//假设一个月最多挣20万
        int A = S - 3500;
        while(true)
        {
            if(A <= 1500)
                x = A * 0.03;
            else if(A <= 4500)
                x = 45 + (A - 1500) * 0.1;
            else if(A <= 9000)
                x = 45 + 300 + (A - 4500) * 0.2;
            else if(A <= 35000)
                x = 45 + 300 + 900 + (A - 9000) * 0.25;
            else if(A <= 55000)
                x = 45 + 300 + 900 + 6500 + (A - 35000) * 0.3;
            else if(A <= 80000)
                x = 45 + 300 + 900 + 6500 + 6000 + (A - 55000) * 0.35;
            else
                x = 45 + 300 + 900 + 6500 + 6000 + 8750 + (A - 80000) * 0.45;
            if(S == x + T)
                break;
            S = S - 100;
            A = S - 3500;
        }
        System.out.println(S);
    }

}

原文地址:https://www.cnblogs.com/yu-jiawei/p/12366289.html

时间: 2024-08-04 11:10:39

201612-2 工资计算 Java的相关文章

CCF 201612-2 工资计算 java 解题

问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为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中超过9

CCF——工资计算(2016-12)

问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为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中超过9

精确计算java中float和double的精度

[本文相关的代码放在github上,地址为:https://github.com/VigourJiang/StructuredFloat] Java中double类型的格式是遵循IEEE 754标准的.尽管数学意义上的小数是连续的,但double仅仅能表示其中的一些离散点,把这些离散点组成的集合记为S,S的大小还是有限的.如果要保存的小数P刚好在集合S内,那么double类型就能精确的表示P:否则double类型只能从集合S中找一个与P最近的离散点P'代替P. 以上表述对于float也成立.IE

如何恢复被破坏的工资计算结果目录?

1.用TCODE:PC_PAYRESULT查询员工的工资计算结果的时候发现工资计算结果的目录含有不正确的信息,或者被错误删除或者破坏,; 这种情况一般是由删除工资计算结果不当造成,比如删除结果不是从最后一条开始逐条往前删除,而是从中间选择删除. 2.这种情况会造成有工资计算结果但不读取不到,或者读取的结果不是目录中显示的工资期间: 3.要解决上述问题, 可以使用TCODE:PC00_M99_UDIR (RPUDIR00:Retore the Payroll Result Directory) 对

聊聊JVM(三)两种计算Java对象大小的方法

这篇说说如何计算Java对象大小的方法.之前在聊聊高并发(四)Java对象的表示模型和运行时内存表示 这篇中已经说了Java对象的内存表示模型是Oop-Klass模型. 普通对象的结构如下,按64位机器的长度计算 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节 3. 数据区 4.Padding(内存对齐),按照8的倍数对齐 数组对象结构是 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对

如何准确计算Java对象的大小

     有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两次System.gc()比较两次gc前后内存的使用量在计算java对象的大小,也有人根据Java虚拟机规范中的Java对象内存排列估算对象的大小,这两种方法或多或少都有问题,因为System.gc()并不一定促发GC,同一个类型的对象在32位与64位JVM中使用的内存会不一样,在64位虚拟机中是否开启指针压缩也会影响Java对象在内存中的大小. 那么有没有一种既准确又方便的方法计算对象的大小呢?答案是肯定的.在Java

CCF201612-2 工资计算

试题编号:201612-2试题名称:工资计算时间限制:1.0s内存限制:256.0MB 问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元: 2) A中不超过1500元的部分,税率3%: 3) A中超过1500元未超过4500元的部分,税率

[Python]CCF——工资计算(201612-2)

工资计算 一.问题描述 问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元: 2) A中不超过1500元的部分,税率3%: 3) A中超过1500元未超过4500元的部分,税率10%: 4) A中超过4500元未超过9000元的部分,税率2

货币金额的计算 - Java中的BigDecimal

float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal.,而且使用BigDecimal类也可以进行大数的操作.具体参见API 编号 方法 类型 描述 1 public BigDecimal(double val)   构造 将double表示形式转化为BigDecimal 2 public BigDecimal(int val)  构造 将int表示形式转化为BigDecimal 3 public BigDecimal(Strin