【CCF-CSP】201612-2 工资计算


一、题目

在这里插入图片描述

原题目链接

二、解题

1.题目

可以利用查表法按照常规思路计算,也可以正向计算,因为工资都是一个整百的数,我们从100开始枚举,然后计算缴纳税款,然后得到实际工资,如果匹配,税前工作就是当前的枚举

2.代码

dev c++ 5.11

#include<iostream>
#include<algorithm>
using namespace std;

int tax(int x){
	int a[8]={0,1500,4500,9000,35000,55000,80000,0x3f3f3f};
	float b[8]={0,0.03,0.1,0.2,0.25,0.3,0.35,0.45};
	int tax=0;
	if(x<=3500){
		return 0;
	}else{
		int n=x-3500;
		for(int j=1;j<8;j++){
			if(n>a[j-1]){
				tax+=(min(a[j]-a[j-1],n-a[j-1]))*b[j];
			}
			else break;
		}
	} 
	return tax;
}
int main(){
	int t;
	cin>>t; 
	for(int s=100;s<=200000;s+=100){
		if(t==s-taxsi)){
			cout<<s;
			break;
		}
	}
	return 0;
}




3.提交结果

在这里插入图片描述

总结

1.解释

计算个人所得税,并通过输入工资数额,输出扣除个人所得税后的实际工资。具体的实现思路如下:

  1. 定义一个函数 int tax(int x) 用于计算个人所得税,其中参数 x 表示个人工资数额。

  2. 在 tax() 函数中定义两个数组 a 和 b,分别用于记录税率所对应的阈值和对应的税率。其中,数组 a 中的元素表示该阈值下个人所得应缴纳的税款,数组 b 中的元素表示对应阈值所对应的税率。

  3. 接着,在 tax() 函数中,当参数 x 不大于 3500 时,函数直接返回 0 表示该工资数额无需纳税。否则,计算实际需要缴纳的个人所得税,具体如下。

  4. 初始化变量 tax 为 0,表示当前个人所得税金额为 0。

  5. 计算实际需要缴纳的个人所得税。首先,根据公式 n = x-3500 计算出需要缴纳个人所得税的工资数额。

  6. 接着,循环判断当前工资数额 n 所处的阈值,根据对应的税率 b 计算出需要缴纳的个人所得税额,并将其累加到变量 tax 中。

  7. 最后,返回变量 tax 表示实际需要缴纳的个人所得税金额。

  8. 在 main() 函数中,首先输入一个工资数额 t,然后循环进行如下操作:

  9. 从 100 到 200000 按照步长为 100 的方式遍历每一个工资数额 s。对于每一个 s,通过调用 tax() 函数计算其实际需要缴纳的个人所得税金额,并将其从 s 中扣除,得到实际工资数额。

  10. 判断实际工资数额是否等于输入的工资数额 t,如果相等,则输出该工资数额 s,并跳出循环。

  11. 如果循环结束还没有找到匹配的工资数额,则输出 0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值