问题描述

小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为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中超过9000元未超过35000元的部分,税率25%;   6) A中超过35000元未超过55000元的部分,税率30%;   7)
A中超过55000元未超过80000元的部分,税率35%;   8) A中超过80000元的部分,税率45%;
  例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×3%=45元,超过1500元不超过4500元部分应缴税(4500-1500)×10%=300元,超过4500元部分应缴税(6500-4500)×20%=400元。总共缴税745元,税后所得为9255元。
  已知小明这个月税后所得为T元,请问他的税前工资S是多少元。

输入格式

输入的第一行包含一个整数T,表示小明的税后所得。所有评测数据保证小明的税前工资为一个整百的数。

输出格式

输出一个整数S,表示小明的税前工资。

样例输入

9255

样例输出

10000

评测用例规模与约定

对于所有评测用例,1 ≤ T ≤ 100000。


这道题可是坑了我个坑呀,都是自己刚开始就没读清楚题目的要求结果就----白打了好长时间。

  • 先是没看清已知与所求,结果自己按照顺序思维蹭蹭往下写,繁杂的计算。
  • 再是没看清题目的工资都是整百元

之后就思维混乱的,没啥心思再干了,去百度了下各位大神的做法。我其中借鉴了一位大神的做法,思考了片刻之后终于解决。
借鉴网址:https://blog.csdn.net/sunjinshengli/article/details/78820845

思考过程

这个问题并不复杂。简单分析一下:
工资的计算公式如下:
T = S - tax
其中,T为税后工资,S为税前工资,tax为需缴纳的税款,并且tax与S存在函数关系:
tax = f(S)
这个函数就是一个简单的分段函数:几个节点如下表:

先放代码

package _2_08_工资计算;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int T = scanner.nextInt(); //输入之后的工资double S = 0;  //之前的工资if(T <= 3500)S = T;else if(T <=4955){S = (T-105)/0.97;}else if(T <=7655){S = (T-455)/0.9;}else if(T <=11255){S = (T-1255)/0.8;}else if(T <=30755){S = (T-1880)/0.75;}else if(T <=44755){S = (T-3805)/0.7;}else if(T <=61005){S = (T-6730)/0.65;}else{S = (T-15080)/0.55;}System.out.println((int)Math.floor(S+0.5));}
}

像代码里的 105 455…我刚开始很迷或不知道怎么计算出来的。然后就举了个栗子进行计算。 结果其实就是一个简单的数学问题,然后把 计算式子化简所得。
例如 : T = S -(S-3500)*0.97 化简,反解S即可。


第二个问题 ——Java的精度问题

这个我受那个博主的启发,但又不同于他,我选择了用 +0.5向下取整的方法解决。


Java除法的解决方案 两种方法

【CSP】【Java】工资计算相关推荐

  1. ##(C语言) CSP 201612-2 工资计算(打表法)(100分)

    试题编号: 201612-2 试题名称: 工资计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的 ...

  2. 用java计算输入工资计算税收_标准作业

    课后作业 第一章 理论: 1.java环境搭建的步骤 2.java语言的简介 3.手写代码实现个人信息的输出(姓名,性别,年龄,家庭地址,爱好,座右铭) 上机: 分别使用记事本和myeclipse编写 ...

  3. java :工资计算

    *工资计算 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所 ...

  4. CCF-CSP -201612-2 工资计算 java 实现

    CCFCSP的1-2题很简单.但是这里又在很简单的问题上翻船了.这里记录一下吧! 试题 试题编号: 201612-2 试题名称: 工资计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: ...

  5. CCF_Java_201612-2_工资计算

    CCF_Java_201612-2_工资计算 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 代码(100) 代码(90) 时间限制: 1.0s 内存限制: 256.0MB 问题 ...

  6. 基于jsp(java)工资管理系统的设计和开发(含源文件)

    获取项目源文件,联系Q:1225467431,可指导毕设,课设 论文是本团队帮同学做过的案例,需要毕业论文设计(论文+源程序+答辩PPT)的同学联系799523222 论文是本团队帮同学做过的案例,需 ...

  7. 小项目:简单Web教师工资计算

    目录 题目:实现一个计算教师工资的项目 项目目录结构 题目:实现一个计算教师工资的项目 项目目录结构  页面一:Employee.java package entitylogic;public abs ...

  8. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...

    广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少 首页 > java > 广东java工资待遇 作者:镀金池   发布时间:2018-12-22 11:20 在 ...

  9. CCF-CSP 201612-2 工资计算(C++满分代码)

    问题描述 试题编号: 201612-2 试题名称: 工资计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后 ...

最新文章

  1. asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
  2. java学习笔记(五)----super用法,final用法,抽象类,接口
  3. ios 原生骨架动画库
  4. 白领职场必懂的22条潜规则(转载)
  5. gcc 与 glibc 的关系 glibc版本查看
  6. 【学习笔记】mongodb的使用(二)flask项目使用mongodb实现人员管理系统
  7. 简单的vue入门案例
  8. MVC的传递数据的方法
  9. chmod递归授权文件夹(用法)
  10. 【linux笔记】secureCRT使用
  11. wifi5 router/ wallys/IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G5G/IPQ5018, 802.11ax,wifi 6e,QCN9074
  12. kali linux捉肉鸡教程,使用Kali中的Metasploit生成木马控制Windows系统
  13. 手机号码归属地查询工具的正确使用方法
  14. 背包问题(Knapsack Problem) ----- 蛮力法
  15. 拿什么拯救你的硬盘?十大绝招帮你忙
  16. “带花树开花”算法来解非二分图的最大匹配
  17. SpringCloud 分布式日志采集方案
  18. 记一次使用android studio分析app闪退原因的过程
  19. matplotlib绘制三维图
  20. PhpSpreadsheet 实现Excel多sheet导出

热门文章

  1. 使用vue做柱状echarts报表
  2. ADC模数转换器(基于STM32F407)
  3. android.mk 编译 aidl,c++层使用和编译aidl文件例子
  4. 联想拯救者Y7000 用的好好打突然键盘失灵了
  5. ajax小型日期插件,Pikaday.js简约轻量级的日期选择插件 - 资源分享
  6. 长沙吃喝玩乐指南(一)
  7. PDF删除页面怎么操作?这几个方法推荐给你
  8. 用perl实现宋词词频统计——东风何处是人间
  9. 设计模式开篇:为什么要使用设计模式?
  10. 开源盛会来袭,开发者们不容错过!