鹿岛打折活动,怎么买更划算?
面对8月16日的优惠,第二件起享受半价,不超过 4 件。注意,价格最高的没有折扣,其余三件是半价。
打折宣传海报
![](https://img.haomeiwen.com/i184712/2996fa2414984253.jpeg)
鹿岛八月份会员优惠 四件商品中最贵的不打折,其余的五折, 超过四件以上的部分, 第5件开始恢复该折扣 计划。如果你一次购买了 m > 5 件商品, 已知价格为数组 lsm:[] 你希望充分享受价格折扣, 经过你的函数sequencePlan总价最低是多少?
def sequencePlan(prices,rate,num):
prices = sorted(prices)[::-1]
#首先你从高到低排序,前五个之中最贵的
#也是整个购物车里最贵的
#最贵的没有折扣
#第2-4的价格享受rate折扣
total = 0
for i in range(0,len(prices),num):
print(prices[i:i+num], sum(prices[i:i+num]))
total += (max(prices[i:i+num+1]) + sum(prices[i:i+num+1])) *rate
return total,prices,sum(prices)
prices = [29,39,59,69,89,109,50,139,99]
rate,num = 0.5,4
print(sequencePlan(prices,rate,num))
输出测试用例[29,39,59,69,89,109,50,139,99] 508.5👇
不打折的价格是 682
[139, 109, 99, 89] 436
[69, 59, 50, 39] 217
[29] 29
(508.5, [139, 109, 99, 89, 69, 59, 50, 39, 29], 682)
测试用例
1、折扣前的总价是 682、不排序的优惠后结果 598.5, [29, 39, 59, 69, 89, 109, 50, 139, 99],3、
2、 排序后的总价是 [29,39,59,69,89,109,50,139,99] 508.5👇
输出打折后的价格是 508.5
网友评论