题解
花果山会员
1 条题解
-
0
P4292 花果山会员(【入门】)
解题思路
孙悟空的公司给不同身份的顾客发优惠:白金会员立减 100 元,金卡会员立减 80 元,银卡会员立减 70 元,普通顾客立减 30 元。我们只需要读入顾客身份和消费金额,按身份减掉对应的钱,就是应付金额。
输入有两行:第一行一个字符代表身份,
P是白金、G是金卡、S是银卡,其他任何字符都算普通顾客(注意这不只是普通用户,还可能是别的乱七八糟的字符,所以用else兜底);第二行是消费金额。用
if...else if...else依次判断:P→ 金额减 100;G→ 金额减 80;S→ 金额减 70;- 其他 → 金额减 30。
拿样例来说,金卡顾客消费 580 元,减 80 元后应付 元。
边界情况:题目保证最低消费 300 元、最高 10000 元,减完优惠后一定是正数,不会出现负数金额。
参考代码
// 根据会员身份计算优惠后的应付金额 #include <iostream> using namespace std; int main() { char c; int m; cin >> c >> m; // 第一行身份,第二行消费金额 if (c == 'P') cout << m - 100 << endl; // 白金减100 else if (c == 'G') cout << m - 80 << endl; // 金卡减80 else if (c == 'S') cout << m - 70 << endl; // 银卡减70 else cout << m - 30 << endl; // 普通减30 return 0; }复杂度分析
最多判断 4 次就能算出答案,和消费金额的大小无关,所以时间复杂度是 。只用了一个字符和两个整数变量,额外空间复杂度也是 。
- 1