Python-100 練習題 02
這道題目可以根據每個獎金髮放區間來分界,先分別定義兩個陣列,一個數組是存放每個區間獎金的提成比例,記為rat
;另一個數組是記錄每個發放區間的上邊界,表示當超過該邊界時候,直接利用上邊界乘以該區間的提成比例,例如對於在 10 萬元以下的這個區間,就是上邊界為 10 萬,然後超過後,該區間發放獎金就是100000*0.1
。
然後我們先考慮利潤超過 100 萬的情況,依次降低利潤,對應每種情況。
程式碼實現
def pay_award(): profit = int(input('淨利潤:')) arr = [1000000, 600000, 400000, 200000, 100000, 0] rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] r = 0 for idx in range(0, 6): if profit > arr[idx]: # 當前區間的利潤 r += (profit - arr[idx]) * rat[idx] print('current award=', (profit - arr[idx]) * rat[idx]) # 重置下一個區間起始獎金數量 profit = arr[idx] return r 複製程式碼
簡單的測試例子:
# 利潤是 11000 淨利潤:11000 current award= 1100.0 award= 1100.0 # 利潤是 1100000 (110萬) 淨利潤:1100000 current award= 1000.0 current award= 6000.0 current award= 6000.0 current award= 10000.0 current award= 7500.0 current award= 10000.0 award= 40500.0 複製程式碼
原始碼在:
或者點選原文,也可以檢視原始碼。
歡迎關注我的微信公眾號--機器學習與計算機視覺,或者掃描下方的二維碼,大家一起交流,學習和進步!