CCF-CSP-2016-12-2 工資計算
阿新 • • 發佈:2019-01-06
題目:
問題描述 小明的公司每個月給小明發工資,而小明拿到的工資為交完個人所得稅之後的工資。假設他一個月的稅前工資(扣除五險一金後、未扣稅前的工資)為S元,則他應交的個人所得稅按如下公式計算:1) 個人所得稅起徵點為3500元,若S不超過3500,則不交稅,3500元以上的部分才計算個人所得稅,令A=S-3500元;
2) A中不超過1500元的部分,稅率3%;
3) A中超過1500元未超過4500元的部分,稅率10%;
4) A中超過4500元未超過9000元的部分,稅率20%;
5) A中超過9000元未超過35000元的部分,稅率25%;
6) A中超過35000元未超過55000元的部分,稅率30%;
7) A中超過55000元未超過80000元的部分,稅率35%;
8) A中超過80000元的部分,稅率45%;
例如,如果小明的稅前工資為10000元,則A=10000-3500=6500元,其中不超過1500元部分應繳稅1500×3%=45元,超過1500元不超過4500元部分應繳稅(4500-1500)×10%=300元,超過4500元部分應繳稅(6500-4500)×20%=400元。總共繳稅745元,稅後所得為9255元。
已知小明這個月稅後所得為T元,請問他的稅前工資S是多少元。
程式碼:
#include <iostream>
using namespace std;
int f(int t)
{
if (t <= 3500)return t;
int s = 3500;
t -= 3500;
if (t <= 1455)return s + t * 100 / 97;
s += 1500, t -= 1455;
if (t <= 2700)return s + t * 100 / 90;
s += 3000, t -= 2700;
if (t <= 3600)return s + t * 100 / 80;
s += 4500, t -= 3600;
if (t <= 19500)return s + t * 100 / 75;
s += 26000, t -= 19500;
if (t <= 14000)return s + t * 100 / 70;
s += 20000, t -= 14000;
if (t <= 16250)return s + t * 100 / 65;
s += 25000, t -= 16250;
return s + t * 100 / 55;
}
int main()
{
int t;
cin >> t;
cout << f(t);
return 0;
}