文章

【GESP】C++二级练习 luogu-B3720 [语言月赛202303] Out for Dinner B

GESP二级练习,多层分支练习,难度★✮☆☆☆。

luogu-B3720 [语言月赛202303] Out for Dinner B

题目要求

题目描述

Bessie 一家今晚要外出就餐。饭馆中只有三种菜,这三种菜的名称分别为 ABC

饭店在进行折扣活动。如果我们称消费打 $Y$ 折,则意味着支付金额菜品金额的 $\dfrac{Y}{10}$ 倍。具体的,如果购买了 B 菜且未购买 C 菜,则消费打八折;如果购买了 C 菜且未购买 B 菜,则消费打七折;如果 BC 两道菜都购买了,则消费打六折

这一次 Bessie 一家人只点了两道菜。这两道菜可能是相同的。最终结账时,菜品金额是 $x$ 元。给定两道菜的名字和 $x$,请你求出 Bessie 的支付金额

输入格式

输入共两行。

第一行为一个整数 $x$,代表 Bessie 一家的消费金额

第二行为两个大写英文字母 $a, b$,代表 Bessie 一家点的两道菜的名称。

输出格式

输出共一行一个整数,代表 Bessie 一家这一次在打折后需要支付多少钱。

输入 #1

1
2
100
AB

输出 #1

1
80

输入 #2

1
2
100
CA

输出 #2

1
70

说明/提示

样例 1 解释

Bessie 一家如果购买了 B 菜且未购买 C 菜,整次消费会打八折。他们本次未打折前需要支付 $100$ 元,因此打折后需要支付 $100 \times 80\% = 80$ 元。

数据规模与约定

对于 $100\%$ 的数据,保证 $10 \leq x \leq 10 ^ {18}$ 且 $x$ 是 $10$ 的倍数,$a, b$ 分别是大写英文字母 ABC 中的一个。

请注意,我们不保证 $a, b$ 一定不相同,这意味着可能出现 $a, b$ 相同的情况。


题目分析

解题思路

  1. 首先,我们需要理解题目的核心要求:
    • 题目涉及三种菜品:A、B、C
    • 每次点两道菜(可以相同)
    • 折扣规则:
      • 点B不点C:八折
      • 点C不点B:七折
      • 同时点BC:六折
      • 其他情况:不打折
  2. 解题思路:
    • 输入消费金额x和两道菜的名称a,b
    • 判断折扣条件:
      • 如果a和b中同时包含B和C,打六折
      • 如果a和b中只包含C(不含B),打七折
      • 如果a和b中只包含B(不含C),打八折
      • 其他情况不打折
    • 计算最终支付金额:
      • 六折:price = x × 10 / 6
      • 七折:price = x × 10 / 7
      • 八折:price = x × 10 / 8
      • 不打折:price = x
    • 注意:题目保证x是10的倍数,可以用整数运算


示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
using namespace std;
int main() {
    // 定义变量x存储消费金额
    long long x;
    cin >> x;
    // 定义变量a,b存储两道菜的名称
    char a, b;
    cin >> a >> b;
    // 定义变量price存储最终支付金额
    long long price;
    // 如果同时点了B和C,打6折
    if ((a == 'B' || b == 'B') && (a == 'C' || b == 'C')) {
        price = x / 10 * 6;
    } 
    // 如果只点了C,打7折
    else if ((a == 'C' || b == 'C')) {
        price = x / 10 * 7;
    } 
    // 如果只点了B,打8折
    else if ((a == 'B' || b == 'B')){
        price = x / 10 * 8;
    } 
    // 其他情况不打折
    else {
        price = x;
    }
    // 输出最终支付金额
    cout << price;
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

bcqm-”系列题目可在编程启蒙题库进行在线评测。

本文由作者按照 CC BY 4.0 进行授权