题解
【入门】冷饮的价格(2)
1 条题解
-
0
解题思路
题目要求根据购买冰棍的数量分档计算价格:
- 买 30 个及以上:1 元/个
- 买 20~29 个:1.2 元/个
- 买 10~19 个:1.5 元/个
- 买 10 个以下:1.8 元/个
思路:分档判断。
从最高档往最低档判断,用 if-else 连起来:
- 先判断是否 >= 30
- 再判断是否 >= 20(此时一定 < 30,落在 20~29)
- 再判断是否 >= 10(此时一定 < 20,落在 10~19)
- 剩下的就是 < 10
为什么从大到小判断? 这样每个 else if 只要判断下界,前面的判断已经保证了上界,写起来最简洁。
参考代码
#include <iostream> #include <iomanip> using namespace std; int main() { int a; double b; cin >> a; if (a >= 30) { b = a * 1; // 1 元/个 } else if (a >= 20) { b = a * 1.2; // 1.2 元/个 } else if (a >= 10) { b = a * 1.5; // 1.5 元/个 } else { b = a * 1.8; // 1.8 元/个 } cout << fixed << setprecision(1) << b << endl; return 0; }复杂度分析
- 时间复杂度:O(1)
- 空间复杂度:O(1)
- 1