python

布尔运算:迅捷驾校(F&F)的收费标准

2020-10-22  本文已影响0人  Python_Camp

迅捷驾校(F&F)的收费标准如下。

第1小时以内30美元
其后每半小时** 10美元
** 以后的费用是以四舍五入的方式计算的,以半小时为单位。

例如,学生X上课1小时20分钟,1小时30分钟的费用为40元(30+10),如果他上课5分钟,整小时的费用为30元。
出于好心,还提供了5分钟的宽限期。因此,如果学生上了65分钟或1小时35分钟的课,他只需支付1小时或1小时30分钟的费用。

对于给定的课程时间(分钟),写一个函数价格来计算课程的费用。

基础数学 MATEMATICSALGORITHMSNUMBERS(数字)

6种角度各异,脑洞清新的写法:

#11th solution by ericlee 丁丁猫贡献
def solve(st):
    a,b = divmod(st-60,30)
    return 30*(st<=65) + (st>65)*(30+10*(a+(b>5)))
st = 102
print(solve(st))

第二种写法 math

#1st solution
import math
def cost(mins):
    return 30 + 10 * math.ceil(max(0, mins - 60 - 5) / 30)

第三种写法与第五种相似

def cost(mins):
    return 30 + max(0,(mins-60)//30+((mins-60)%30>5))*10

第四种写法用到while循环,有利于掌握循环技巧

def cost(mins, cost=30):
    mins -= 60
    while mins > 5:
        cost += 10
        mins -= 30
    return cost

第五种写法简洁

def cost(mins):
    return 30 + 10 * ((mins - 66) // 30 + 1) if mins > 65 else 30
上一篇 下一篇

猜你喜欢

热点阅读