2017-10-29 19 views
0

私は宿題についてこの質問があります。私は可能な限り毎回試してみたので、数学の助けが必要です。私の先生が言っていることの結論を得ることができないようです。python - 数学の乗算

カウント残業:ここ

が問題である。この関数は、残業手当のための乗数三つのパラメータ、時間数 が働いて、時間あたり賃金、および がかかります。乗数は、従業員が支払われる基本給のどれくらいの額であるか。したがって、1.5 の乗数は、残業手当が通常の手当より50%高いことを意味します。名前。この関数PayCalc:この機能を使用する方法 : 時間= 41 率= 12.00 乗数= 2.0 有料= PayCalc(時間、速度、乗算器) プリント(有料)(これは526を印刷)

これはこれまでの私のコードです:

def PayCalc(hour,rate,multiplier): 

    hw = hours*rate 
    if multiplier == 1.0: 
     ovr = .25 
    elif multiplier == 1.5: 
     ovr = .50 
    elif multiplier == 2.0: 
     ovr = (hw *.75) + hw 
    elif multiplier == 2.5: 
     ovr = 2 

    print(ovr) 

` hours = int(input("Enter the numer of hours worked: ")) 
    rate = float(input("Enter the pay per hour:")) 
    multiplier = float(input("Enter the multiplier for overtime pay: ")) 
    pay = PayCalc(hours,rate,multiplier)` 
+0

すべてのコードを入力してください。 – scharette

+0

'(41 * 12)*。75 + 41 * 12 = 861' – skrubber

+0

これは私のコードのすべてです。 – tuxy

答えて

0

あなたの先生が誤字を犯したことは非常に疑いがあります。これを計算する方法を知るためには、労働者が残業の対象となるまでに働くことができる時間数を知る必要があります。米国の場合、これは40時間です。必要な機能は、次のようになります。

def PayCalc(hours, rate, multiplier): 

    hours_before_overtime = 40 

    if hours > hours_before_overtime: 

     overtime_hours = hours - hours_before_overtime 
     regular_hours = hours - overtime_hours 

    else: 

     overtime_hours = 0 
     regular_hours = hours 

    return rate * (regular_hours + overtime_hours * multiplier) 

hours  = 41 
rate  = 12.00 
multiplier = 2.0 
pay  = PayCalc(hours, rate, multiplier) 
print(pay) 

出力は504.0です。これは教師から与えられたhoursrate、およびmultiplierのパラメータに由来します。残業前に働いた時間数が40であれば、この場合には、残業の唯一1時間が働いており、賃金は次のように計算される:別のユーザーがコメントで述べたように、この数学のために、

formula

インストラクターが指定されてpay == 526.0になると、hours_before_overtime38 + 1/6になるはずです。代わりに、multiplier3.8 + 1/30になる可能性があります。または、526の結果を満たすための新しいパラメータの組み合わせが他にもあるかもしれませんが、私の心の中で最も簡単な説明は、あなたの先生がどこかでエラーを出したり、 。