2017-10-29 83 views
0

我有这个问题的作业。我需要数学方面的帮助,因为我已经尽可能地尝试了它,我似乎无法得出我老师说的那个526的结论。python - 数学乘法

这里的问题:

计数加班:此功能需要三个参数,数个小时 工作,每小时的报酬。而 乘数为加班工资。乘数是工人支付的基本工资的多少。所以乘数意味着加班费比正常工资高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。这源于您的老师给出的参数hours,ratemultiplier。如果加班工作过的小时数为40,在这种情况下,只有1小时加班的工作,而工资计算方法为:当另一个用户在评论中指出

formula

,这个数学作为讲师指定的pay == 526.0hours_before_overtime必须是38 + 1/6。或者,multiplier可能是3.8 + 1/30,或者可能有一些其他的新参数组合来满足526的结果,但就我而言,最简单的解释是,您的老师在某处发生了错误,或者忽略提及某些关键信息。