题解
抽奖程序
1 条题解
-
0
P4330 抽奖程序(【入门】)
解题思路
商场的抽奖规则分两层:
- 第一层:号码在 1~10 之间(含 1 和 10)才能中奖,其余号码只能拿到优惠卷
coupon; - 第二层:中奖号码里,1~5 号奖品是笔记本电脑
computer,6~10 号奖品是行李箱luggage。
所以要先判断"能不能中奖",再在能中奖的情况下判断"奖品是什么",这是典型的嵌套 if:外面一层 if 管有没有奖,里面一层 if 管是什么奖。
拿样例来说,输入 80,80 不在 1~10 范围内,直接输出
coupon。边界情况:号码正好是 1 或 10 都算中奖;号码是 5 得电脑,号码是 6 得行李箱,分界线要判断准确。题目保证 n≥1,不用考虑 0 或负数;万一输入 0,程序也会走
else输出coupon,和"1~10 中奖、其余优惠卷"的规则一致。参考代码
// 根据抽奖号码判断奖品:电脑、行李箱还是优惠卷 #include <iostream> using namespace std; int main() { int n; cin >> n; if (n >= 1 && n <= 10) { // 1~10号有奖品 if (n <= 5) cout << "computer" << endl; // 1~5号笔记本电脑 else cout << "luggage" << endl; // 6~10号行李箱 } else { cout << "coupon" << endl; // 其余号码得优惠卷 } return 0; }复杂度分析
无论抽奖号码是几,最多嵌套判断两次就能出结果,所以时间复杂度是 。只用一个整数变量,额外空间复杂度也是 。
- 第一层:号码在 1~10 之间(含 1 和 10)才能中奖,其余号码只能拿到优惠卷
- 1