B3863 [GESP202309 一级] 买文具 解题思路 题目分析 这是一个简单的购物计算问题,需要判断小明的钱是否足够购买所需文具,并计算余额或缺额。重要知识点 1. 基本输入输出 #include <iostream>:输入输出流头文件using namespace std;:使用标准命名空间cin >> 变量;:从标准输入读取数据cout << 输出内容;:向标准输出显示数据2. 条件判断语句(if-else) if语句:用于条件判断,如果条件为真则执行相应代码块else语句:与if配合使用,当if条件为假时执行关系运算符:>=(大于等于)用于比较两个数值3. 算术运算 乘法运算:* 用于计算总价格减法运算:- 用于计算余额或缺额4. 换行输出 "\n":换行符,用于输出换行endl:流操作符,用于输出换行并刷新缓冲区解题思路详解 步骤: 读取输入:获取购买的文具数量和拥有的钱数计算总价:根据单价计算所有文具的总价格判断购买能力:比较拥有的钱和总价格输出结果:根据判断结果输出相应信息
#include <bits/stdc++.h> using namespace std;int main() {// 变量声明:// x - 签字笔数量,y - 记事本数量,z - 直尺数量// q - 小明拥有的钱数int x, y, z, q;// 输入部分:连续读取四个整数// 分别对应签字笔数量、记事本数量、直尺数量、拥有的钱数cin >> x >> y >> z >> q;// 计算总价格:// 签字笔:2元/支 × x支// 记事本:5元/本 × y本 // 直尺:3元/把 × z把int b = x * 2 + y * 5 + z * 3;// 条件判断:判断钱是否足够if (q >= b) {// 钱足够的情况:// 第一行输出"Yes"并换行cout << "Yes" << "\n";// 第二行输出剩余的钱数(拥有的钱 - 总价格)cout << q - b;}else {// 钱不够的情况:// 第一行输出"No"并换行cout << "No" << endl;// 第二行输出缺少的钱数(总价格 - 拥有的钱)cout << b - q;}return 0; }