(每日一练28748)题目名称:小玉家的电费

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-05-29 06:37:49

夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。

阶梯计算,没什么优雅的做法。。。。

n = int(input())
arr = [0.4463,0.4663,0.5663]
ans = 0
ans += n * arr[0] if n <= 150 else 150 * arr[0]
ans += (n - 150) * arr[1] if 400 >= n > 150 else ((400 - 150) * arr[1] if n > 400 else 0)
ans += (n - 400) * arr[2] if n > 400 else 0
print('{:.1f}'.format(ans))
...全文
184 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-06-18
  • 打赏
  • 举报
回复
n = int(input())
ans,arr,dot = 0,[0.4463,0.4663,0.5663],[0,150,400,float('inf')]
for i in range(1,len(dot)):
    ans += arr[i - 1] * (0 if n <= dot[i - 1] else (n if n <= dot[i] else dot[i]) - dot[i - 1])
print('{:.1f}'.format(ans))
yyfhz 2023-05-29
  • 打赏
  • 举报
回复

既然LZ已经使用一个数组登记阶梯电费单价了,为啥不再加一个数组来记录阶梯用电上限呢?
如果有两个数组,一个记录阶梯电费上限,一个记录阶梯电费单价,为啥不用一个循环来进行处理呢?

文盲老顾 2023-05-29
  • 举报
回复
@yyfhz 5个以上的阶梯,还值得用下循环之类的方法,就三个,实在懒得弄循环了

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧