题解:洛谷 P1422 小玉家的电费

【题目来源】

洛谷:P1422 小玉家的电费 - 洛谷

【题目描述】

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

【输入】

输入一个正整数,表示用电总计(单位以千瓦时计),不超过 \(10000\)

【输出】

输出一个数,保留到小数点后 \(1\) 位(单位以元计,保留到小数点后 \(1\) 位)。

【输入样例】

267

【输出样例】

121.5

【算法标签】

《洛谷 P1422 小玉家的电费》 #模拟#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件(万能头文件)
using namespace std;      // 使用标准命名空间

/**
 * 主函数 - 程序入口
 * @return 程序执行状态码(0表示成功)
 */
int main()
{
    int e;                // 定义变量:用电量e(千瓦时)
    double p;             // 定义变量:电费p(元)
    
    cin >> e;             // 输入用电量
    
    // 分段计算电费
    if (e <= 150) 
    {
        // 第一档:≤150千瓦时,单价0.4463元
        p = 0.4463 * e;
    } 
    else if (e <= 400) 
    {
        // 第二档:151-400千瓦时
        // 前150度按第一档,超出部分按0.4663元
        p = 0.4463 * 150 + (e - 150) * 0.4663;
    } 
    else 
    {
        // 第三档:>400千瓦时
        // 前150度按第一档,250度按第二档,超出部分按0.5663元
        p = 0.4463 * 150 + 250 * 0.4663 + (e - 400) * 0.5663;
    }
    
    // 输出电费(保留1位小数)
    printf("%.1f", p);
    
    return 0;            // 程序正常结束
}

【运行结果】

267
121.5
posted @ 2026-02-16 10:29  团爸讲算法  阅读(3)  评论(0)    收藏  举报