我想计算受某些阈值限制的家庭的水费成本:
基本上阈值如下:
- 对于第一个0-10立方米,将花费10美元
- 对于随后的11-20 m3,将花费20美元
- 对于随后的21-30 m3,将花费30美元
- 对于随后的>;30 m3,将花费40美元
例如,如果一个家庭使用40立方米的水,将收取以下费用:
(10*10) + (10*20) + (10*30) + (10*40) = $1000
如果一个家庭使用23立方米的水,将收取:
(10*10) + (10*20) + (3*30) = $390
我能想到的唯一方法就是使用if条件句。我不认为这是最好的计算方法。你知道吗
Tags:
首先定义一个以
(difference in volume, price)
格式保存这些限制的列表:注意顺序很重要。这里
None
代表“无限制”。现在是函数:顺便说一句:不使用
if
就无法解决这个问题。:)你也可以使用字典:
那么你只需要一次if语句。你知道吗
你可以利用成本函数是分段线性的这一事实。因此,你必须找出你所处的时间间隔,并把它作为你的字典的关键,在这里你可以节省每个时间间隔开始时的成本以及成本的增加。你知道吗
相关问题 更多 >
编程相关推荐