新个税

题目描述

牛牛已知每月的税前收入,他想知道在新个税下,税收后收入是多少? 个税计算方法是这样的:

综 合 所 得 金 额 − 新 起 征 点 5000 元 = 应 纳 税 所 得 额 综合所得金额 - 新起征点5000元 = 应纳税所得额 5000=

其中 综合所得金额 就是税前收入,(你可以忽略五险一金,专项扣除等我没有提到的东西)

对于 应纳税所得额

  1. 不超过3000元的部分,税率3%

  2. 超过3000元至12000元的部分,税率10%

  3. 超过12000元至25000元的部分,税率20%

  4. 超过25000元至35000元的部分,税率25%

  5. 超过35000元至55000元的部分,税率30%

  6. 超过55000元至80000元的部分,税率35%

  7. 超过80000元的部分,税率45%

税 前 收 入 − 个 人 所 得 税 = 税 后 收 入 税前收入 - 个人所得税 = 税后收入 =

为了方便计算,保证收入是100的倍数,因此输出一定是整数。

虽然个人所得税法没有写明,但是我相信对于税前收入5000以下的人,是可以不交个人所得税的,当然也不会受到国家的补助。(税不会是负数)

存在7组数据为5000, 8000, 17000, 30000, 40000, 60000, 85000 输入保证 2400 <= 税前收入 <= 240000

输入描述:

输入一行一个整数表示税前收入

输出描述:

输出一行一个整数表示税后收入

示例1

输入

20000

输出

18410

说明

应纳税所得额为15000,其中有3000落在第一部分,有9000落在第二部分,有3000落在第三部分。个人所得税 = 3000 * 3% + 9000 * 10% + 3000 * 20% = 90 + 900 + 600 = 1590所以税后收入是18410

这题简单直接模拟

#include
using namespace std;
int al, sa, de;
void stop()
{
	printf("%d\n",al-de);
	exit(0);
}
int main()
{
	scanf("%d", &al);
	if(al<=5000)
	{
		 printf("%d",al);
		 return 0;
	}
	int sa=al/100-50;
	if(sa<=30)
		de+=sa*3,stop();
	else
		de+=90,sa-=30;
	if(sa<=90)
		de+=sa*10,stop();
	else
		de+=900,sa-=90;
	if(sa<=130)
		de+=sa*20,stop();
	else
		de+=2600,sa-=130;
	if(sa<=100)
		de+=sa*25,stop();
	else
		de+=2500,sa-=100;
	if(sa<=200)
		de+=sa*30,stop();
	else
		de+=6000,sa-=200;
	if(sa<=250)
		de+=sa*35,stop();
	else
		de+=8750,sa-=250;
	de+=sa*45;
	stop();
}

来源:nkw

你可能感兴趣的:(nkw)