迅捷驾校(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
网友评论