题解
【入门】小明暑假的零花钱
1 条题解
-
0
解题思路
题目根据考试成绩分档计算零花钱,分四档:
- 成绩 ≥ 90:零花钱 = 成绩 × 3
- 成绩 80~89:零花钱 = 成绩 × 2
- 成绩 70~79:零花钱 = 成绩本身
- 成绩 < 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