参考信息

杭州市的个人所得税起征点是每月5000元。
个人所得税税率标准:
1、工资范围在1-5000元之间的,包括5000元,适用个人所得税税率为0%;
2、工资范围在5000-8000元之间的,包括8000元,适用个人所得税税率为3%;
3、工资范围在8000-17000元之间的,包括17000元,适用个人所得税税率为10%;
4、工资范围在17000-30000元之间的,包括30000元,适用个人所得税税率为20%;
5、工资范围在30000-40000元之间的,包括40000元,适用个人所得税税率为25%;
6、工资范围在40000-60000元之间的,包括60000元,适用个人所得税税率为30%;
7、工资范围在60000-85000元之间的,包括85000元,适用个人所得税税率为35%;
8、工资范围在85000元以上的,适用个人所得税税率为45%。

  • 注意:这个月薪工资是扣除五险一金之后的个人所得金额,这部分需要缴纳个税。

思路

初级程序员

啊?这有什么难的,直接 判断做几十个if else不就OK了吗? 如果小于5000,直接扣税0,大于5000,再看是不是大于8000,是的话,先扣 3000 * 3%,一直往下走不就行了。

这样写确实实现了功能。不过如果这类问题标准有100项,岂不是需要写400行以上代码。

中级程序员

标准可以配置化,如果需求数值变更,只需要修改配置即可。

优化

多次计算的情况下,可以做预处理,减少重复加法。

代码

#define NDEBUG  //禁用断言
#include <iostream>
#include <bits/stdc++.h>  //引入所有的C++标准库头文件using namespace std;  //使用std命名空间typedef struct ShuiCfg {   //定义结构体类型ShuiCfgShuiCfg(int a, int b, int c){   //定义结构体初始化函数min = a;max = b;rate = c;}int min = 0;  //定义最小值int max = INT32_MAX;  //定义最大值int rate = 0;  //定义税率
} ShuiCfg;GetAfterShui(vector<ShuiCfg> &vec, vector<int>& vec_rmb) {  //定义函数GetAfterShui,参数为struct数组和int数组的引用cout << "GetAfterShui" << endl;  //输出字符串"GetAfterShui"for (auto rmb : vec_rmb) {  //使用范围for循环遍历vec_rmbint shui = 0;  //定义税为0for (auto &it : vec) {  //使用范围循环遍历vec数组if (rmb > it.max) {  //如果rmb大于it.max,即工资大于本档次最大值shui += (it.max - it.min) * it.rate / 100;  //税收增量=(最大值-最小值)×税率÷100} else {  //否则,即工资小于本档次最大值shui += (rmb - it.min) * it.rate / 100;  //税收增量=(工资-最小值)×税率÷100break;  //结束for循环}}cout << rmb << " ,shui=" << shui << ", last=" << rmb - shui << endl;  //输出工资、税收增量和取得实际收入后}
}GetAfterShui2(vector<ShuiCfg> &vec, vector<int>& vec_rmb) {  //定义函数GetAfterShui2,参数为struct数组和int数组的引用cout << "GetAfterShui2" << endl;  //输出字符串"GetAfterShui2"vector<int> vec_before;  //定义存储之前税收的vectorint  before = 0;  //定义之前税收的累加值,初始值为0for (auto &it : vec) {  //使用范围循环遍历vec数组vec_before.push_back(before);  //将之前税收的累加值压入vec_before中before += (it.max - it.min) * it.rate / 100;  //之前税收累计值+=(最大值-最小值)×税率÷100}int shui = 0;  //定义税为0for (auto rmb : vec_rmb) {  //使用范围for循环遍历vec_rmbfor (int i = 0; i < vec.size(); ++i) {  //使用for循环遍历vecauto it = vec[i];  //获取vec[i]元素if (rmb < it.max && rmb >= it.min) {  //如果工资值在该区间内shui = (rmb - it.min) * it.rate / 100 + vec_before[i];  //税收增量=(工资-最小值)×税率÷100+累加值break;  //结束for循环}}cout << rmb << " ,shui=" << shui << ", last=" << rmb - shui << endl;  //输出工资、税收增量和取得实际收入后}
}int main() {vector<ShuiCfg> vec{{0,5000,0},{5000,8000,3},{8000,17000,10},{17000,30000,20},{30000,40000,25},{40000,60000,30},{60000,85000,35},{85000,INT32_MAX,45},};  //定义vector类型的数组vecvector<int> vec_rmb{5000, 10000, 20000,50000, 100000};  //定义vector类型的数组vec_rmbGetAfterShui(vec, vec_rmb);  //调用函数GetAfterShuiGetAfterShui2(vec, vec_rmb);  //调用函数GetAfterShui2return 0;   //返回0,代表程序正常结束
}

运行结果

  • 代码里写了两种计算方法 GetAfterShui, GetAfterShui2。计算的次数越多,配置越长,GetAfterShui2节省的时间越多。

有人可能会问了,“为什么你的注释写的这么多?这么详细?”

我会这么回答:“啊,这,这是chatGPT帮忙写的注释。”

朋友介绍的目前能用chatGPT。(这个网站不用科学 上网)
https://freegpt.one

【c++】2023杭州月薪个税计算(chatGPT帮忙加注释)相关推荐

  1. 2019年杭州个税计算工具excel版

    2019年杭州个税计算工具excel版 附上某云的下载链接和提取码: 链接:https://pan.baidu.com/s/1zknoav-8SinunkuBqs1KcA 提取码:ns0t 好好使用吧 ...

  2. 2023年3月份隐私计算市场洞察

    3月份隐私计算.联邦学习的市场概览 摘要:在隐私计算市场中,三股信息流如清风拂面,流转不息.采购意向,犹如花开满园,为供应商和服务提供商探明商机:招标信息,如云卷云舒,为客户了解市场动态提供重要参考: ...

  3. C语言笔记之个税计算

    C语言笔记之个税计算 1. 业务 1.1 月薪个人所得税 1.2 年终奖个人所得税 2. 功能 2.1 初级功能 2.2 高级功能 1. 业务 1.1 月薪个人所得税 2019年的个税制度改得比较复杂 ...

  4. 打工人息息相关的个税计算

    2022年个税计算方式 先声明一下,本文是根据2022年的个税税率来举例计算的.首先来看一下2022年的个税的税率: 1.年度不超过36000元的税率为:3% 速算扣除数:0 2.超过36000-14 ...

  5. 2019年个税计算excel模板

    今天傍晚时分,晚到了一周的工资终于到了银行卡,持续一周的手机银行APP间歇性查询行为终于落下帷幕了.有了连续4个月发错工资的经历,已经不敢相信会计了.于是下定决心,自己做一个excel个税计算表格.防 ...

  6. C语言结构体工资缴税,C语言进阶-第11~13讲:结构体实践(成绩处理个税计算器之码数分离)...

    任务和代码(一): 成绩处理 /* *All rights reserved *文件名称:main.c *作者: Osseyda *完成日期:2017.11.6 *版本号:v2. * *问题描述:定义 ...

  7. 信通院发布“2023可信AI案例 知识计算应用优秀案例”, 百度知识中台三大案例入选

    近日,中国信息通信研究院依托中国人工智能产业发展联盟.AI工程化委员会知识计算工作组公布了"2023可信AI案例知识计算应用优秀案例"名单.基于百度知识中台打造的"国能绥 ...

  8. 默安科技再度入选2023杭州准独角兽 中国未来独角兽

    4月10日-11日,由中国科协指导,杭州市人民政府.民建浙江省委会.中国投资发展促进会联合主办的第七届万物生长大会在杭州举办.来自国内外创新创业创投领域的企业家.投资人.创业者相聚钱塘江畔,探讨数字经 ...

  9. 美创科技再次入选《2023杭州独角兽准独角兽企业榜单》

    4月10日,由中国科协指导,杭州市人民政府.民建浙江省委会.中国投资发展促进会联合主办的第七届万物生长大会在杭州举办.会上,杭州市创业投资协会联合微链共同发布<2023杭州独角兽&准独角 ...

最新文章

  1. iOS 关于Blocks
  2. batch size 越大,学习率也要越大
  3. ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军
  4. 【测试】禅道搭建在服务器上的操作步骤
  5. js 匿名函数_javascript:函数的使用
  6. Git详解之六 Git工具(转)
  7. 【学术分享】发顶会论文,怎么就那么难?
  8. RDLC报表系列(五) 简单的图表-柱状图
  9. git add/rm/mv文件到暂存区
  10. C语言动态规划——背包问题详解
  11. la4080 Warfare And Logistics 罗列+最短
  12. 浅谈URI和URL的区别
  13. aspen分离膜_双膜组件强化CO_2混合气分离的研究
  14. iText 7 html2pdf 使用总结
  15. 电影下载合并教程 (转)
  16. 文本识别之MASTER
  17. 均质机工作原理动画_高压均质机结构图.doc
  18. 数据库-订单发票表(单表)
  19. mysql数据库中求圆的面积_MYSQL数据库
  20. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第五集

热门文章

  1. 短视频APP有什么优势?
  2. pdf按照页码分割 java_java使用itext按页码拆分pdf文件
  3. SAP ABAP 业务对象 BUS6043 AssetValueAdjust 资产折旧 BAPI 清单和相关 TCODE
  4. zabbix 4.0 自动发现windows磁盘,并监控磁盘使用率和磁盘剩余容量
  5. 设置Oracle19CPDB随着CDB自启动
  6. 游戏分类Game Categories
  7. 学计算机买宏基好吗,宏基笔记本电脑怎么样 宏基电脑有哪些技术优势
  8. 极速office(Word)里面的文字怎么添加备注
  9. 前端笔记知识点整合之JavaScript(四)关于函数、作用域、闭包那点事
  10. 为什么sparksession.sql(“set hive.support.quoted.identifiers=none”)不起作用?