Hướng dẫn giải của TIN10_IF08: Hóa đơn tiền điện


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Cho số kWh x gia đình đã dùng. Tính số tiền phải trả theo bảng giá bậc thang: 100 kWh đầu giá 2000, 100 kWh tiếp theo giá 3000, 100 kWh tiếp theo giá 5000, từ 301 kWh trở lên giá 10000.

Cách làm

Tiền điện được tính theo từng bậc. Chương trình xét x thuộc bậc nào rồi cộng dồn tiền của các bậc đã dùng.

Bẫy: số tiền có thể lớn (x tới 100000 nên tiền có thể gần 10^9), nhớ dùng long long.

#include <bits/stdc++.h>
using namespace std;

int main() {
    // x là số kWh đã dùng
    long long x;
    cin >> x;
    long long tien = 0;
    // 100 kWh đầu giá 2000
    if (x <= 100) {
        tien = x * 2000;
    }
    // 100 kWh tiếp theo (101 - 200) giá 3000
    else if (x <= 200) {
        tien = 100 * 2000 + (x - 100) * 3000;
    }
    // 100 kWh tiếp theo (201 - 300) giá 5000
    else if (x <= 300) {
        tien = 100 * 2000 + 100 * 3000 + (x - 200) * 5000;
    }
    // Từ 301 kWh trở lên giá 10000
    else {
        tien = 100 * 2000 + 100 * 3000 + 100 * 5000 + (x - 300) * 10000;
    }
    cout << tien << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.