【GESP】C++二级练习 luogu-b3669, [语言月赛202210] 购物节
GESP二级练习,数学函数、分支语句练习,难度★✮☆☆☆。
luogu-B3669 [语言月赛202210] 购物节
题目要求
题目描述
一个商店有两种包装的本子,第一种是单本装,一本 $x$ 元,第二种是十本优惠装,一套 $y$ 元。
现在商店推出“双十一”活动,每种包装的本子都优惠 1 元,优惠后价格为单本装 $x - 1$ 元,十本装为 $y - 1$ 元。
小明想要买恰好 $n$ 个本子,请问至少需要花多少钱?
注:这里的“恰好”的意义为,不能买少于 $n$ 个本子,也不能买超过 $n$ 个本子。
输入格式
共一行,包括三个数字 $x,y,n$,分别表示单本装的价格,十本优惠装的价格,小明需要的本子的数量。
输出格式
共一个数,表示小明购买 $n$ 个本子至少需要花费的钱的数目。
样例输入 #1
1
10 80 10
样例输出 #1
1
79
样例输入 #2
1
10 80 11
样例输出 #2
1
88
样例输入 #3
1
10 80 1
样例输出 #3
1
9
提示
样例解释 :
单本装原价 $10$ 元,十本装原价 $80$ 元。
优惠后价格为单本装 $9$ 元,十本装 $79$ 元。
此时,如果购买 $10$ 本,则需要 $79$ 元;如果购买 $1$ 本,则需要 $9$ 元;如果购买 $11$ 本,则需要 $88$ 元。
数据范围:
对于 $20\%$ 的数据,满足 $n < 10$;
对于 另外 $20\%$ 的数据,满足 $n$ 是 $10$ 的倍数;
对于 $80\%$ 的数据,满足 $0\le n,x,y\le 10^4$
对于 $100\%$ 的数据,满足 $0\le n,x,y\le 10^9$
题目分析
解题思路
- 首先,读取输入的单本装原价
x
、十本装原价y
和购买数量n
。 - 初始化变量
result_only_1
来存储购买n
本书的总价格,如果每本书都以单本装价格购买。 - 计算购买
n
本书的总价格,如果每本书都以单本装价格购买,并存储在result_only_1
中。 - 计算可以整除
10
的本数count
,以便计算可以以十本装价格购买的书籍数量。 - 计算不能整除
10
的本数count_2
,以便计算需要以单本装价格购买的书籍数量。 - 计算以十本装价格购买
count
本书的总价格,并存储在result_1
中。 - 计算以单本装价格购买
count_2
本书的总价格,并存储在result_2
中。 - 计算总的最小价格
result
,即以十本装价格购买count
本书和以单本装价格购买count_2
本书的总价格之和。 - 输出最小价格
result
。
注意:由于最终价格可能超出int
类型数据范围,因此需要用long long
。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
#include <iostream>
using namespace std;
int main() {
int x, y; // 定义变量x和y
int n; // 定义变量n
cin >> x >> y >> n; // 读取输入的x, y, n
long long result_only_1 = 0; // 初始化result_only_1为0
result_only_1 = (x - 1) * (long long)n; // 计算result_only_1的值
int count = n / 10; // 计算n除以10的整数部分
int count_2 = n % 10; // 计算n除以10的余数
long long result_1, result_2 = 0; // 定义变量result_1和result_2
result_1 = (y - 1) * (long long)count; // 计算result_1的值
result_2 = (x - 1) * (long long)count_2; // 计算result_2的值
long long result = result_1 + result_2; // 计算result的值
result = min(result_only_1, result); // 计算result的最小值
cout << result; // 输出result的值
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。