美文网首页python
布尔运算:迅捷驾校(F&F)的收费标准

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

作者: Python_Camp | 来源:发表于2020-10-22 21:53 被阅读0次

    迅捷驾校(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
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/rrzpmktx.html