【题目来源】
【题目描述】
商店正在开展促销活动,给出了两种方案的折扣优惠。第一种方案是购物满 x 元减 y 元;第二种方案是直接打 n 折,也就是说价格变为原先的 n/10。这里的 x,y,n 均是正整数,并且 1≤y<x,1≤n<10。
需要注意的是,第一种方案中满减优惠只能使用一次。例如购物满 10 元减 3 元时,若挑选了价格总和为 33 元的物品,只能减免 3 元,需要支付 30 元。
小明在商店挑选了价格总和为 p 元的物品,结账时只能使用一种优惠方案。小明最少需要支付多少钱呢?
【输入格式】
四行,四个正整数 x,y,n,p,含义见题目描述。
【输出格式】
一行,一个小数,表示小明最少需要支付多少钱,保留两位小数。
【输入样例】
8
7
2
11
【输出样例】
2.20
【数据范围】
对于所有测试点,保证 1≤y<x≤100,1≤n<10,1≤p≤100。
【算法分析】
本题看似简单,实则一堆坑点。
(1)使用“购物满 x 元减 y 元”的方案,前提是 p>=x,且只能使用一次。
(2)使用“直接打 n 折”的方案,注意要乘以 0.1,以保证得到的是浮点数。
(3)使用 float v=p; 将 v 初始化为 p。
(4)将浮点数的运算,能用加减,不要用乘除。
【算法代码】
【参考文献】