top1编程
← 返回题目
题解

【入门】小明暑假的零花钱

1 条题解

  • 0
    @ 2026-7-31 14:18:17

    解题思路

    题目根据考试成绩分档计算零花钱,分四档:

    1. 成绩 ≥ 90:零花钱 = 成绩 × 3
    2. 成绩 80~89:零花钱 = 成绩 × 2
    3. 成绩 70~79:零花钱 = 成绩本身
    4. 成绩 < 70:零花钱固定 50 元

    思路:用 if-else 分档判断。

    因为成绩从高到低分档,所以从最高档开始判断,每档用 else if 连接,命中一档就不再往下判断:

    • 先判断是否 ≥ 90
    • 再判断是否 ≥ 80(此时一定 < 90)
    • 再判断是否 ≥ 70(此时一定 < 80)
    • 剩下的就是 < 70

    为什么用 else if 不用多个 if? 因为每档是互斥的(一个成绩只属于一档),用 else if 命中一档后就不再看后面的,更清晰也不会重复。

    举例 成绩 90:

    • ≥ 90,零花钱 = 90 × 3 = 270

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        if (n >= 90) {
            cout << n * 3;  // 成绩的 3 倍
        } else if (n >= 80) {
            cout << n * 2;  // 成绩的 2 倍
        } else if (n >= 70) {
            cout << n;      // 就是成绩
        } else {
            cout << 50;     // 固定 50 元
        }
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(1)
    • 空间复杂度:O(1)
    • 1