[语言月赛202210] 购物节
GESP二级练习,数学函数、分支语句练习,难度★✮☆☆☆。
luogu-B3669 [语言月赛202210] 购物节
题目要求
题目描述
一个商店有两种包装的本子,第一种是单本装,一本 元,第二种是十本优惠装,一套 元。
现在商店推出“双十一”活动,每种包装的本子都优惠 1 元,优惠后价格为单本装 元,十本装为 元。
小明想要买恰好 个本子,请问至少需要花多少钱?
注:这里的“恰好”的意义为,不能买少于 个本子,也不能买超过 个本子。
输入格式
共一行,包括三个数字 ,分别表示单本装的价格,十本优惠装的价格,小明需要的本子的数量。
输出格式
共一个数,表示小明购买 个本子至少需要花费的钱的数目。
样例输入 #1
10 80 10
样例输出 #1
79
样例输入 #2
10 80 11
样例输出 #2
88
样例输入 #3
10 80 1
样例输出 #3
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
。
{% include custom/custom-post-content-inner.html %}
示例代码
#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;
}
{% include custom/custom-post-content-footer.md %}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on