B3669 [语言月赛202210] 购物节

· · 题解

B3669 [语言月赛202210] 购物节

Source & Knowledge

2022 年 10 月语言月赛,由洛谷网校入门计划/基础计划提供。

本题考察对分支语句数学知识的应用。

文字题解

题目大意

有价格为 x-1 的单本和 y-1 的十连本装,问至少要花费多少钱才能买到 n 本本子。

解析

本题难点在于判断要买多少个一本和多少个十本。

我们很容易想到,先买十本装,当剩下不足 10 本要买的时候,买一本装,这样,总价格便是:n/10*(y-1)+n%10*(x-1)

但,存在以下这种情况:当一本装足够便宜,以至于买 n 个一本的价格比买 10 本的价格还低。此时,我们所有本子均购买一本装。

判断代码如下:

 if ( (x - 1) * 10 < y - 1) {
        ans = n * (x - 1);
    } else {
        ans = (n % 10) * (x - 1);
        ans += (n / 10) * (y - 1);
    }

注意事项

视频题解

完整代码请在视频中查看