当前位置: 首页 > news >正文

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

参考信息

杭州市的个人所得税起征点是每月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帮忙加注释)

参考信息 杭州市的个人所得税起征点是每月5000元。 个人所得税税率标准&#xff1a; 1、工资范围在1-5000元之间的&#xff0c;包括5000元&#xff0c;适用个人所得税税率为0%; 2、工资范围在5000-8000元之间的&#xff0c;包括8000元&#xff0c;适用个人所得税税率为3%; 3、工…...

【TypeScript】的上手学习指南!

目录TS简介TypeScript是什么&#xff1f;为什么要推荐使用TypeScript生态支持安装TypeScriptTS简介 TypeScript是什么&#xff1f; TypeScript官网 简介&#xff1a;TypeScript是JavaScript类型的超集&#xff0c;它可以编译成纯JavaScript。TypeScript可以在任何浏览器、任何计…...

红黑树(Insert())

文章目录红黑树代码红黑树性质红黑树vsAVL树红黑树的实现Insert()情况一&#xff1a;如果我插入的新节点时红色的情况二&#xff1a;叔叔是黑色或者不存在情况三: cur红,p为红,g为黑,u不存在或者为黑-双旋检查erase()红黑树vsAVL树红黑树的应用&#xff1a;红黑树 二叉搜索树 …...

MOV指令使用

mov用于数据传送。之后分为目的操作数和源操作数&#xff0c;目的操作数必须是通用寄存器或者内存单元&#xff1a;源操作数可以是具有相同数据宽度的通用寄存器或者内存单元&#xff0c;还可以是立即数。传送指令只影响目的操作数内容&#xff0c;不改变源操作数内容。 如&am…...

解释一下RecyclerView的适配器内部方法

RecyclerView的适配器&#xff08;Adapter&#xff09; 是一个连接数据模型和RecyclerView的桥梁&#xff0c;它在RecyclerView中提供了数据和布局之间的连接。下面是RecyclerView适配器中常用的几个方法的解释&#xff1a; 1.onCreateViewHolder(ViewGroup parent, int view…...

集合框架及背后的数据结构

1.介绍&#xff1a; Java 集合框架&#xff0c;又被称为容器是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。 其主要表现为将多个元素置于一个单元中&#xff0c;用于对这些元素进行快速、便捷的存储、检索 、管理 &#xff0c;即平时我们俗称的增删查改…...

【强化学习】强化学习数学基础:蒙特卡洛方法

强化学习数学方法&#xff1a;蒙特卡洛方法举个例子举个例子1&#xff1a;投掷硬币The simplest MC-based RL algorithm举个例子2&#xff1a;Episode lengthUse data more efficientlyMC without exploring starts总结内容来源将value iteration和policy iteration方法称为mod…...

BI分析工具软件有哪些

最近发现很多人讨论BI数据分析&#xff0c;今天给大家全面介绍下BI数据分析相关的信息。首先给大家科普一下&#xff0c;什么是BI分析。 BI分析其实是指通过BI分析工具&#xff0c;对企业内部和外部的大量数据进行收集、整理、处理和分析&#xff0c;以提供有价值的洞察&#x…...

2023爱分析·RPA软件市场厂商评估报告:容智信息

目录 1. 研究范围定义 2. RPA软件市场分析 3. 厂商评估&#xff1a;容智信息 4. 入选证书 1. 研究范围定义 RPA即Robotic Process Automation&#xff08;机器人流程自动化&#xff09;&#xff0c;是一种通过模拟人与软件系统的交互过程&#xff0c;实现由软件机器人…...

设计模式之七大原则(二)——里氏替换原则、依赖倒转原则

1.里氏替换原则 里氏替换原则&#xff08;Liskov Substitution Principle&#xff0c;LSP&#xff09;由麻省理工学院计算机科学实验室的里斯科夫女士在 1987 年的“面向对象技术的高峰会议”&#xff08;OOPSLA&#xff09;上发表的一篇文章《数据抽象和层次》&#xff09;里提…...

数据库日常实操优质文章分享(含Oracle、MySQL等) | 2023年2月刊

本文为大家整理了墨天轮数据社区2023年2月发布的优质技术文章&#xff0c;主题涵盖Oracle、MySQL、PostgreSQL等数据库的环境搭建、故障处理等日常实践操作&#xff0c;以及概念梳理、常用脚本等总结记录&#xff0c;分享给大家&#xff1a;Oracle优质技术文章概念梳理&基础…...

事件循环机制(Event Loop)和宏任务(macro-tast)微任务(micro-tast),详细讲解!!!

“事件循环机制” 和 “宏任务微任务” 也是前端面试中常考的面试题了。首先&#xff0c;要深刻理解这些概念的话&#xff0c;需要回顾一些知识点。知识点回顾1、进程与线程进程。 程序运行需要有它自己的专属内存空间&#xff0c;可以把这块内存空间简单的理解为进程每个应用至…...

mysql基础操作3

查询襄阳的员工姓名和性别&#xff0c;性别要求显示为 男 女SELECT ename,(CASE WHEN sexF THEN 女 ELSE 男 END)sexFROM empWHERE jiguan襄阳查询所有的订单&#xff0c;显示订单日期 订单数量 订单状态SELECT saleDate,salesQuantity,(CASE WHEN saleState1 THEN 新建 WHEN s…...

【Web安全】PHP安全

一、文件包含漏洞严格来说&#xff0c;文件包含就是代码注入的一种。代码注入&#xff0c;其原理就是注入一段用户能控制的脚本或代码并让服务器端执行。代码注入的典型代表就是文件包含。文件包含可能会出现在JSP、PHP、ASP等语言中&#xff0c;常见函数如下&#xff1a;PHP&a…...

双向链表+循环链表

循环链表双向链表 循环链表 循环链表是头尾相接的链表(即表中最后一个结点的指针域指向头结点&#xff0c;整个链表形成一个环)(circular linked list) **优点&#xff1a;**从表中任一结点出发均可访问全部结点 循环链表与单链表的主要差别当链表遍历时&#xff0c;判别当前…...

Java程序的逻辑控制

一、顺序结构 顺序结构比较简单&#xff0c;如果我们按照代码书写的顺序一行一行执行&#xff0c;将会是这样的&#xff1a; System.out.println("aaa"); System.out.println("bbb"); System.out.println("ccc"); // 运行结果 aaa bbb ccc 如…...

BUCTOJ - 2023上半年ACM蓝桥杯每周训练题-1-A~K题C++Python双语版

文章目录BUCTOJ - 2023上半年ACM&蓝桥杯每周训练题-1-A~K题CPython双语版前言问题 A: 1.2 神奇兔子数列题目描述输入输出解题思路AC代码CPython问题 B: 1.3 马克思手稿中的数学题题目描述输入输出解题思路AC代码CPython问题 C: 1.4 爱因斯坦的阶梯题目描述输入输出解题思路…...

存储的本质-学习笔记

1 经典案例 1.1 数据的流动 一条用户注册数据流动到后端服务器&#xff0c;持久化保存到数据库中。 1.2 数据的持久化 校验数据的合法性修改内存写入存储介质2 存储&数据库简介 2.1 存储系统特点 性能敏感、容易受硬件影响、存储系统代码既“简单”又“复杂”。 2.2 数…...

新一代骨传导机皇重磅发布:南卡Neo骨传导运动耳机,性能全面提升

近日&#xff0c;中国最强骨传导品牌NANK南卡发布了最新一代骨传导耳机——南卡Neo骨传导耳机&#xff01;该款耳机与运动专业性更强的南卡runner Pro4略微不同&#xff0c;其主要定位于轻运动风格&#xff0c;所以这款耳机的音质和佩戴舒适度达到了令人咂舌的地步&#xff01;…...

Hbase Schema设计与数据模型操作

一、Hbase Schema设计 1&#xff0c;Schema 创建 使用 Apache HBase Shell 或使用 Java API 中的 Admin 来创建或更新 HBase 模式。 Configuration config HBaseConfiguration.create(); Admin admin new Admin(conf); TableName table TableName.valueOf("myTable&…...

微电影广告有哪些传播优势?

微电影广告是在基于微电影的模式下发展而来的&#xff0c;是伴随着当下快节奏、碎片化的生活方式而诞生的新兴广告表现形式。微电影广告凭借其具备的独特传播优势以及时代特征成为广大企业主塑造企业品牌形象的主要方式。那么&#xff0c;微电影广告究竟有哪些传播优势&#xf…...

html基础(列表(ul、ol、dl)、表格table、表单(input、button、label)、div和span、空格nbsp)

1无序列表<ul>和有序列表<ol>1.1无序列表<ul><!-- 无序列表 --><ul><li>吃饭</li><li>睡觉</li><li>打豆豆</li></ul>1.2有序列表<ol><!-- 有序列表 --><ol><li>吃饭</li…...

uniapp常用标签

view ~~ 视图容器类似于传统html中的div&#xff0c;用于包裹各种元素内容<view><text>hh</text> </view>scroll-view ~~可滚动视图区域scroll-x 允许横向滚动scroll-y 允许纵向滚动scroll-top 设置竖向滚动条位置&#xff0c;可以一键回到顶部refresh…...

《数字中国建设整体布局规划》发布,推进IPv6部署和应用是重点

近日&#xff0c;中共中央、国务院印发了《数字中国建设整体布局规划》&#xff08;以下简称《规划》&#xff09;&#xff0c;并发出通知&#xff0c;要求各地区各部门结合实际认真贯彻落实。 《规划》指出&#xff0c;建设数字中国是数字时代推进中国式现代化的重要引擎&…...

【Java】 异步调用实践

本文要点&#xff1a; 为什么需要异步调用CompletableFuture 基本使用RPC 异步调用HTTP 异步调用编排 CompletableFuture 提高吞吐量BIO 模型 当用户进程调用了recvfrom 这个系统调用&#xff0c;kernel 就开始了 IO 的第一个阶段&#xff1a;准备数据。对于 network io 来说…...

园区智慧能源管理系统

实现对园区的用能情况实时、全方位监测&#xff0c;重点设备进行数据自动采集并智能统计、分析&#xff0c;根据需要绘制各种趋势曲线、能源流向图和分析报表。将物联网、大数据与全过程能源管理相融合&#xff0c;提供全生命周期的数字化用能服务&#xff0c;实现用能的精细化…...

基于卷积神经网络CNN的分类研究,基于卷积神经网络的手写体识别

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络CNN手写体识别 基本结构 主要参数 MATALB代码 结果图 展望 背影 现在生活&#xff0c;各种人工智能都要求对图像拥有识别…...

mybatis的增删改查运用

目录 一、总览图 二、运用 一、总览图 代码总览图 数据库总览图 二、运用 数据库的一张表对应一个封装类&#xff0c;一个mapper接口&#xff0c;一个mapper.xml文件&#xff0c; 一个实现类。表中的增删改查都在里面编写 但是配置xml文件整个数据库只要一个就好了 1.…...

centos8安装docker运行java文件

本文由个人总结&#xff0c;如需转载使用请标明原著及原文地址 这里是基于我前一篇搭的centos8服务器做的&#xff0c;如果yum baseos源或appstream源有问题可以去看看前一篇 https://blog.csdn.net/qq_36911145/article/details/129263830 1.安装docker 1.1配置docker yum…...

Docker容器化部署.net core API

1.为API集成Docker环境。&#xff08;VS自带&#xff0c;傻瓜式操作&#xff09; 1.1 点击项目&#xff0c;右键&#xff0c;添加&#xff0c;选择Docker支持 1.2 找到项目根目录中的Dockerfile文件&#xff0c;这是VS刚刚帮我们自动生成的。进入和做如图标红地方修改。 把文…...

建设一个购物网站要多少钱/china东莞seo

作者|硬糖君直播带货无疑是2020年最火爆的行业&#xff0c;但我们日常说起直播带货&#xff0c;往往只会讨论明星、主播等主角。殊不知&#xff0c;主角丰满、配角出彩那才算好戏。正如当初的李佳琦及“小助理”付鹏靠默契配合吸粉无数&#xff0c;一路扶摇直上。放眼如今的直播…...

wordpress 做论坛/百度刷自己网站的关键词

我试图写出一些文本&#xff0c;并在可能的情况下将其编码为utf-8&#xff0c;使用以下代码&#xff1a;outf.write((lang_name "," (script_name or "") "\n").encode("utf-8", errorsreplace))我得到以下错误&#xff1a;^{pr2}$…...

电商网站建设与管理/北京seo收费

使用tc限制所有流量匹配tcp(协议6)目标端口54000(256Kbits入站)到eth0的所有流量的示例…作为根……tc qdisc add dev eth0 handle ffff: ingresstc filter add dev eth0 parent ffff: protocol ip prio 50 u32 \match ip protocol 6 0xff \match ip dport 54000 0xffff police…...

深圳软件项目定制开发费用/网站排名优化技巧

快速上手php&#xff1a;使用PhpStrom调试php闲话 使用phpStrom的时候居然不打印到控制台,要打印测试的话就要输出到页面,目前我还不知道有什么好办法像jsp一样输出到页面的同时也打印到控制台.这种做法还是比较烦的,特别出问题需要调试的时候. ...Asp&period;net使用代码修…...

江西赣州网站建设/搜索网站哪个好

参考&#xff1a;http://www.mamicode.com/info-detail-1705113.html 先声明&#xff0c;热更新词库&#xff0c;需要用到&#xff0c;web项目和Tomcat。不会的&#xff0c;请移步 Eclipse下Maven新建项目、自动打依赖jar包&#xff08;包含普通项目和Web项目&#xff09; Tomc…...

响应式网站 谷歌 移动网站/网络营销一个月能挣多少钱

jar包和war包所存在的原因是&#xff0c;为了项目的部署和发布&#xff0c;通常把项目打包&#xff0c;通常在打包部署的时候&#xff0c;会在里面加上部署的相关信息。这个打包实际上就是把代码和依赖的东西压缩在一起&#xff0c;变成后缀名为.jar和.war的文件&#xff0c;就…...