(JAVA)工资计算-201612-2
来源:互联网 发布:java pack 方法 编辑:程序博客网 时间:2024/06/01 09:16
问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为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。
代码
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int wage = n; int wageAfter = n - 3500; int wageBefore = 0; //交税之后的工资,还是满足税的要求范围 int x1 = 0; int x2 = 0; int x3 = 0; int x4 = 0; int x5 = 0; int x6 = 0; //3500元以上的部分 计算个人所得税 if(wageAfter > 0){ x1 = 1500/100 *3; //45 x2 = (4500 - 1500)/10; //300 x3 = (9000 - 4500)/100 *20; //900 x4 = (35000 - 9000)/100 *25;//6500 x5 = (55000 - 35000)/100 *30;//6000 x6 = (80000 - 55000)/100 *35;//8750 //A中不超过1500元的部分,税率3%; 1500:1455 if(wageAfter <= 1455){ wage =( wageAfter /(100 - 3)*100 ) + 3500; // wageAfter / 0.97 } //A中超过1500元未超过4500元的部分,税率10%; 4500: 4155 if(wageAfter > 1455 && wageAfter <= 4155){ wageBefore = wageAfter + x1; wage = 1500+((wageBefore - 1500)/9*10) +3500; // 除以 0.9 得到(超过1500元未超过4500元的部分)的税 (wageAfter - 1500)/9 } //A中超过4500元未超过9000元的部分,税率20%; 9000 : 7755 if(wageAfter > 4155 && wageAfter <= 7755){ wageBefore = wageAfter + x1 + x2; wage = 4500+((wageBefore - 4500)/8*10) +3500; } //A中超过9000元未超过35000元的部分,税率25%; 35000: 27255 if(wageAfter > 7755 && wageAfter <= 27255){ wageBefore = wageAfter + x1 + x2 + x3; wage = 9000+((wageBefore - 9000)/75*100) +3500; } // A中超过35000元未超过55000元的部分,税率30% 55000 : 41255 if(wageAfter > 27255 && wageAfter <= 41255){ wageBefore = wageAfter + x1 + x2 + x3+x4; wage = 35000+((wageBefore - 35000)/7*10) +3500; } // A中超过55000元未超过80000元的部分,税率35% 80000 : 58730 if(wageAfter > 41255 && wageAfter <= 58730){ wageBefore = wageAfter + x1 + x2 + x3+x4+x5; wage = 55000+((wageBefore - 55000)/65*100) +3500; } // A中超过80000元的部分,税率45% if(wageAfter > 58730){ wageBefore = wageAfter + x1 + x2 + x3 + x4 + x5 + x6; wage = 80000+((wageBefore - 80000)/55*100) +3500; } }System.out.println(wage);}}
第二次做代码(100分):
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int t = sc.nextInt();double wage = t;double tax = 0;// 各阶段税收double tax1 = 1500*0.03;double tax2 = (4500-1500)*0.1;double tax3 = (9000-4500)*0.2;double tax4 = (35000-9000)*0.25;double tax5 = (55000-35000)*0.3;double tax6 = (80000-55000)*0.35;//减税后的 最多的钱double t1 =5000-tax1;double t2 = 4500 + 3500-tax2-tax1;double t3 = 9000+3500-tax1-tax2-tax3;double t4 = 35000 + 3500 -tax1-tax2-tax3-tax4;double t5 = 55000 + 3500 -tax1-tax2-tax3-tax4-tax5;double t6 = 80000 + 3500 -tax1-tax2-tax3-tax4-tax5-tax6;// 不超过1500元的部分,税率3%if( t > 3500 && t <= t1){tax = (t - 3500)/(1-0.03);wage = tax + 3500;}//超过1500元未超过4500元的部分,税率10%else if( t > t1 && t <= t2){tax =( t-3500-1500+tax1)/(1-0.1); wage = tax + 1500 +3500 ;}// 超过4500元未超过9000元的部分,税率20%else if(t > t2 && t <= t3){tax = (t-3500-4500+tax1+tax2)/(1-0.2);wage = tax + 4500 +3500;}// 超过9000元未超过35000元的部分,税率25%else if(t > t3 && t <= t4){tax = (t-3500-9000+tax1+tax2+tax3)/(1-0.25);wage = tax + 9000 +3500;}// 超过35000元未超过55000元的部分,税率30%else if(t > t4 && t <= t5){tax = (t-3500-35000+tax1+tax2+tax3+tax4)/(1-0.3);wage = tax + 35000 +3500;}// 超过55000元未超过80000元的部分,税率35%else if(t > t5 && t <= t6){tax = (t-3500-55000+tax1+tax2+tax3+tax4+tax5)/(1-0.35);wage = tax + 55000 +3500;}// 超过80000元的部分,税率45%else if(t > t6){tax = (t-3500-80000+tax1+tax2+tax3+tax4+tax5+tax6)/(1-0.45);wage = tax + 80000 +3500;}int result = (int)wage;System.out.println(result);}}
- (JAVA)工资计算-201612-2
- CCF CSP 201612-2 工资计算(Java-100分)
- CCF 201612-2 工资计算java
- 201612-2 工资计算
- 201612-2 工资计算
- 201612-2 工资计算
- 201612-2工资计算
- CCF 工资计算(Java)
- CCF 201612-2 工资计算
- ccf 201612-2 工资计算
- CCF 201612-2 工资计算
- 201612-2CSP工资计算
- 201612-2 工资计算 ccf
- [CCF] 201612-2 工资计算
- CCF 201612-2 工资计算
- CCF CSP 认证 201612-2 工资计算 java版
- CCF-CSP -201612-2 工资计算 java 实现
- java :工资计算
- 比特币经历价格过山车 理财还是乐金所、ppmoney网贷靠谱
- lvs 简单配置参考
- 需要排序的最短子数组长度
- spring security 从入门到精通二 基础配置
- MappedByteBuffer小结
- (JAVA)工资计算-201612-2
- javascript基础2012
- winform技巧
- 设计模式笔记——适配器模式
- 201705031-leetcode-155-Min Stack
- 图片加载开源库 Glide 用法详解
- 后台系统开发
- 如何按国家标准分幅下载卫星地图
- 百度地图定位错误UnsatisfiedLinkError; thrown while initializing Lcom/baidu/platform/comapi/a的解决办法