第2章-3 阶梯电价 (15分)

浙大oj-浙大版《Python 程序设计》题目集

# @Time : 2020/10/4 14:48
# @Author : Yurken
# @File : 阶梯电价.py
x = float(input())
if 0<= x <= 50:
    y = 0.53*x
    print("cost = {0:.2f}".format(y))
elif x>50:
    y = 26.5+0.58*(x-50)
    print("cost = {0:.2f}".format( y))
else:
    print('Invalid Value!')
### 关于阶梯电价编程实现 #### 实现思路 在解决阶梯电价问题时,通常需要定义不同用电量区间的费用标准。假设存在三个区间:基础电量、中间电量以及超额电量,别对应不同的单价。程序需判断用户的实际用电量属于哪个区间,并按照相应的规则累加总电费。 以下是基于 C 语言的一个通用解决方案: ```c #include <stdio.h> int main() { double electricity_consumption, bill = 0; printf("请输入本月用电量(千瓦时): "); scanf("%lf", &electricity_consumption); if (electricity_consumption < 0) { printf("Invalid Value!\n"); return 0; // 结束程序运行 } // 假设阶梯电价如下: // 第一档:不超过100度的部按每度电0.5元收费; // 第二档:超过100度但不超过200度的部按每度电0.6元收费; // 第三档:超出200度以上的部按每度电0.7元收费; if (electricity_consumption <= 100) { bill = electricity_consumption * 0.5; // 只有第一档 } else if (electricity_consumption <= 200) { bill += 100 * 0.5; // 第一档费用 bill += (electricity_consumption - 100) * 0.6; // 加上第二档费用 } else { bill += 100 * 0.5; // 第一档费用 bill += (200 - 100) * 0.6; // 第二档费用 bill += (electricity_consumption - 200) * 0.7; // 超过200度后的第三档费用 } printf("本月应缴电费为 %.2f 元。\n", bill); return 0; } ``` 上述代码实现了基本的阶梯电价逻辑[^1]。通过条件语句逐步计算各阶段的费用,最终得出总的电费金额。 --- ### 进一步扩展思考 对于更复杂的场景,可以考虑引入数组来存储各个区间的上限值及其对应的单位价格。这样能够使程序更具可维护性和灵活性。例如: ```c #include <stdio.h> #define TIER_COUNT 3 // 定义阶梯数量 int main() { int thresholds[TIER_COUNT] = {100, 200, 9999}; // 各个区间的上限值 double prices[TIER_COUNT] = {0.5, 0.6, 0.7}; // 对应的价格 double consumption, total_bill = 0; printf("请输入本月用电量(千瓦时): "); scanf("%lf", &consumption); if (consumption < 0) { printf("Invalid Value!\n"); return 0; } for(int i = 0; i < TIER_COUNT && consumption > 0; ++i){ double tier_usage = fmin(consumption, thresholds[i] - ((i == 0)? 0 : thresholds[i-1])); total_bill += tier_usage * prices[i]; consumption -= tier_usage; } printf("本月应缴电费为 %.2f 元。\n", total_bill); return 0; } ``` 此版本利用循环结构简化了多级阶梯的处理过程,适用于更多变的情况。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不关我事~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值