题目描述
牛牛已知每月的税前收入,他想知道在新个税下,税收后收入是多少?
个税计算方法是这样的:
综合所得金额 - 新起征点5000元 = 应纳税所得额
其中 综合所得金额 就是税前收入,(你可以忽略五险一金,专项扣除等我没有提到的东西)
对于 应纳税所得额
- 不超过3000元的部分,税率3%
- 超过3000元至12000元的部分,税率10%
- 超过12000元至25000元的部分,税率20%
- 超过25000元至35000元的部分,税率25%
- 超过35000元至55000元的部分,税率30%
- 超过55000元至80000元的部分,税率35%
- 超过80000元的部分,税率45%
税前收入 - 个人所得税 = 税后收入
为了方便计算,保证收入是100的倍数,因此输出一定是整数。
虽然个人所得税法没有写明,但是我相信对于税前收入5000以下的人,是可以不交个人所得税的,当然也不会受到国家的补助。(税不会是负数)
存在7组数据为5000, 8000, 17000, 30000, 40000, 60000, 85000
输入保证 2400 <= 税前收入 <= 240000
输入
输入一行一个整数表示税前收入
输出
输出一行一个整数表示税后收入
输入样例
20000
输出样例
18410
题解
列举出所有可能出现的金额即可
代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <deque>
#include <list>
#include <utility>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <bitset>
#include <iterator>
using namespace std;int main()
{int n;int tax = 0,sum = 0;cin >> n;if(n <= 5000){sum = n;}else if(n-5000<=3000){tax = (n-5000)*0.03;sum = n - tax;}else if(n-5000<=12000){tax = (n-5000-3000)*0.1+3000*0.03;sum=n -tax;}else if(n-5000<=25000){tax = (n-5000-12000)*0.2+9000*0.1+3000*0.03;sum = n-tax ;}else if(n-5000<= 35000){tax = (n-5000-25000)*0.25+13000*0.2+9000*0.1+3000*0.03;sum = n-tax;}else if(n-5000<= 55000){tax = (n-5000-35000)*0.3+10000*0.25+13000*0.2+9000*0.1+3000*0.03;sum = n-tax;}else if(n-5000<=80000){tax = (n-5000-55000)*0.35+20000*0.3+10000*0.25+13000*0.2+9000*0.1+3000*0.03;sum = n-tax;}else if(n-5000> 80000){tax = (n-5000-80000)*0.45+25000*0.35+20000*0.3+10000*0.25+13000*0.2+9000*0.1+3000*0.03;sum = n-tax;}cout << sum;return 0;
}