【CCF】工資計算

  • 2019 年 11 月 8 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/84966799

試題編號:

201612-2

試題名稱:

工資計算

時間限制:

1.0s

記憶體限制:

256.0MB

問題描述:

問題描述   小明的公司每個月給小明發工資,而小明拿到的工資為交完個人所得稅之後的工資。假設他一個月的稅前工資(扣除五險一金後、未扣稅前的工資)為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是多少元。 輸入格式   輸入的第一行包含一個整數T,表示小明的稅後所得。所有評測數據保證小明的稅前工資為一個整百的數。 輸出格式   輸出一個整數S,表示小明的稅前工資。 樣例輸入 9255 樣例輸出 10000 評測用例規模與約定   對於所有評測用例,1 ≤ T ≤ 100000。

解題思路:

找規律是不可能找規律的,這輩子都只會暴力破解。

100分程式碼:  #include <bits/stdc++.h>  using namespace std;    int main()  {      int T,S; // T為稅後工資,S為稅前工資      cin >> T;      if (T <= 3500)      {          S = T;      }      else if (T <= 4955)      {          S = ((T - 3500) / 97) * 100 + 3500;      }      else if (T <= 7655)      {          S = (T - 4955) / 90 * 100 + 5000;      }      else if (T <= 11255)      {          S = (T - 7655) / 80 * 100 + 8000;      }      else if (T <= 30755)      {          S = (T - 11255) / 75 * 100 + 12500;      }      else if (T <= 44755)      {          S = (T - 30755) / 70 * 100 + 38500;      }      else if (T <= 61005)      {          S = (T - 44755) / 65 * 100 + 58500;      }      else      {          S = (T - 61005) / 55 * 100 + 83500;      }      cout << S << endl;      return 0;  }