工資計算 201612-2
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
對於所有評測用例,1 ≤ T ≤ 100000。
(這個題我一開始理解錯了,所以有兩種程式碼,第一個是求稅前工資,第二個是求稅後工資)
①參考程式碼:
#include <iostream>
using namespace std;
int main(){
double T,A;
cin >> T;
int s;
if ((T-3500)<=0)
{
s = T;
}
else
{
s = 3500;
A = T - 3500;
if (A <= 1500 * 0.97)
{
s += A / 0.97;
}
else
{
s += 1500;
A = A - 1500 * 0.97;
if (A <= 3000 * 0.9)
{
s += A/0.9;
}
else
{
s += 3000;
A = A - 3000 * 0.9;
if (A <= 4500 * 0.8)
{
s += A/0.8;
}
else
{
s += 4500;
A = A - 4500 * 0.8;
if (A <= 26000 * 0.75)
{
s += A/0.75;
}
else
{
s += 26000;
A = A - 26000 * 0.75;
if (A <= 20000 * 0.7)
{
s += A/0.7;
}
else
{
s += 20000;
A = A - 20000 * 0.7;
if (A <= 25000 * 0.65)
{
s += A/0.65;
}
else
{
s += 25000;
s += (A- 25000* 0.65)/ 0.55;
}
}
}
}
}
}
}
cout<<s;
return 0;
}
提交結果:
程式碼長度 | 程式語言 | 評測結果 | 得分 | 時間使用 | 空間使用 |
---|
934B | C++ | 正確 | 100 | 0ms | 512.0KB |
#include <iostream>
using namespace std;
//求稅後
void main(){
int s, A;
cin >> s;
double result;
if (s<=3500)
{
result = s;
}
else
{
result = 3500;
A = s - 3500;
if (A<1500)
{
result += A*0.97;
}
else
{
result += 1500 * 0.97;
if (A<=4500)
{
result += (A - 1500)*0.9;
}
else
{
result += 3000 * 0.9;
if (A<=9000)
{
result += (A - 4500)*0.8;
}
else
{
result += 4500 * 0.8;
if (A<=35000)
{
result += (A - 9000)*0.75;
}
else
{
result += 26000 * 0.75;
if (A<=55000)
{
result += (A - 35000)*0.7;
}
else
{
result += 20000 * 0.7;
if (A<=80000)
{
result += (A - 55000)*0.65;
}
else
{
result += 25000 * 0.65;
result += (A - 80000)*0.55;
}
}
}
}
}
}
}
cout << result;
}