牛牛已知每月的税前收入,他想知道在新个税下,税收后收入是多少? 个税计算方法是这样的:
综 合 所 得 金 额 − 新 起 征 点 5000 元 = 应 纳 税 所 得 额 综合所得金额 - 新起征点5000元 = 应纳税所得额 综合所得金额−新起征点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
应纳税所得额为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