试题编号: 201612-2
试题名称: 工资计算
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为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。

问题链接:CCF201612试题。

问题描述:工资收入是分段计税的,输入税后工资,求税前工资。(详见原问题,点击上面的链接)。

问题分析:根据税前工资算税后工资相对要容易许多,本题正好相反。

从编程方法上来说,一种是将工资段和税率写到程序逻辑中。这种做法修改程序比较难,逻辑也比较复杂。另外一种是查表法,通过查表来计算最后的结果。查表法的优点在于,单有关规定改变时,只需要调整表格,而不需要改变程序逻辑。

该问题原始数据可以建两个表格,一是工资收入段表,二是税率表。根据这两个表可以算出收入范围表,即由实际收入得到最高税率是哪一档的表。进一步的计算就变得简单许多。

程序说明商业应用开发中,是不允许出现任何金额计算错误的,误差也是不允许的。导致金额误差有多种原因,其中,使用浮点变量是常见的一种,一点要避免使用浮点类型变量,确保金额相关的计算准确无误

提交后得100分的C++语言程序如下:

/* CCF201612-2 工资计算 */#include <iostream>using namespace std;//#define DEBUGint salaryrange[] = {3500, 3500+1500, 3500+4500, 3500+9000, 3500+35000, 3500+55000, 3500+80000 };
int taxrate[] = {3, 10, 20, 25, 30, 35, 45};
const int SIZE = sizeof(salaryrange) / sizeof(int);int range[SIZE];int main()
{int t, s;// 计算各种收入范围range[0] = salaryrange[0];for(int i=1; i<SIZE; i++) {range[i] = range[i-1] + (salaryrange[i] - salaryrange[i-1])- (salaryrange[i] - salaryrange[i-1]) * taxrate[i-1] / 100;}#ifdef DEBUGfor(int i=0; i<SIZE; i++)cout << range[i] << " ";cout << endl;
#endif// 输入数据:cin >> t;// 计算收入范围int i;for(i=0; i<SIZE; i++)if(t <= range[i])break;// 计算税前工资if(i == 0)s = t;else {s = salaryrange[i-1] + (t - range[i-1]) * 100 / (100 - taxrate[i-1]);}// 输出结果cout << s << endl;return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564196.html

CCF201612-2 工资计算(100分)相关推荐

  1. 003. 火星文计算[100 分]

    火星文计算[100 分] 题目描述 已知火星人使用的运算符号为#.$,其与地球人的等价公式如下: x#y=2*x+3*y+4 x$y=3*x+y+2 1.其中 x.y 是无符号整数 2.地球人公式按照 ...

  2. PTA 6 后缀表达式计算 (100 分)

    Kunkun学长觉得应该让学弟学妹了解一下这个知识点:后缀表达式相对于中缀表达式更容易让计算机理解和学习.现在kunkun学长给出一串后缀表达式,你能帮他算出这个后缀表达式的值吗? 输入格式: 第一行 ...

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

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

  4. 7-2367 计算职工工资(20 分)

    7-2367 计算职工工资(20 分) 给定N个职员的信息,包括姓名.基本工资.浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出). 输入格式: 输入在 ...

  5. CCF201509-2 日期计算(100分)

    试题编号: 201509-2 试题名称: 日期计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有2 ...

  6. CCF201503-1 图像旋转(100分)【数学计算】

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. ...

  7. CCF201903-3 损坏的RAID5(100分)【数学计算+文本处理】

    试题编号: 201903-3 试题名称: 损坏的RAID5 时间限制: 1.0s 内存限制: 512.0MB 问题链接:CCF201903-3 损坏的RAID5 问题简述:(略) 问题分析:数学计算问 ...

  8. CCF201903-2 二十四点(100分)【表达式计算】

    问题链接:CCF201903-2 二十四点 问题分析: 表达式计算问题,关键是对输入流进行处理,需要考虑表达式中运算符的优先级.简单的逻辑,用穷举法就可以了. 用Python语言来实现的话,问题就简单 ...

  9. 运筹学 美国人在计算机上实现的四,【天大作业】2019年秋学期考试《计算机软件技术基础(2)》离线作业考核试题{全套100分}...

    [天大作业]{全套100分} 奥鹏在线离线作业+wx:zcjiaoyu1|+QQ:2502533676|论文 2019年秋学期考试<计算机软件技术基础(2)>离线作业考核试题 计算机软件技 ...

最新文章

  1. 讯飞语音识别_讯飞输入法持续功能创新 语音输入最受用户认可
  2. 北大教授张大庆:无线感知,让你变老也优雅
  3. 了解这些,你就可以在Spring启动时为所欲为了
  4. 如何规划令人流连忘返的网站?
  5. 智慧屏到底是不是鸿蒙,荣耀智慧屏究竟是电视还是“新物种”?
  6. linux下mysql的基本用法
  7. 【Linux 操作系统】Ubuntu 配置 ftp freemind adb
  8. LeetCode 75 Sort Colors(颜色排序)
  9. 体重 年龄 性别 身高 预测鞋码_【新手扫盲】身高体重性别年龄身体素质影响玩滑板吗?...
  10. 新手进阶:LoadRunner中Pacing的设置
  11. 代码整洁之道-程序员的职业素养
  12. 解决小程序图片上传问题
  13. 助焊剂各成分作用浅析
  14. 通过read_excel打开xls文件时,报错struct.error: unpack requires a bytes object of length 2
  15. oracle := 和=,oracle中 =: 和 := 分别是什么意思?
  16. Attention机制学习(二)使用
  17. 获取QQ邮箱的授权码
  18. 机顶盒宽带拨号失败服务器未响应,机顶盒详细错误代码.doc
  19. Find X3系列能实现OPPO的高端破局之梦吗?
  20. 中国56个民族sql语句

热门文章

  1. mod_rewrite
  2. CentOS5.5下SVN部署文档
  3. 神秘的.user.ini文件
  4. Shiro 身份验证
  5. Android中样式及主题
  6. Apache+PHP 无法加载 MySql 模块的问题
  7. 炫天塔罗占卜结果......
  8. 项目中有出现过缓存击穿,简单说说怎么回事?
  9. elasticsearch集群选举源码解析
  10. 如何用Java打出DNA图案_DNA (Java代码)