发布日期:2020-08-17 17:33:16

应用场景:京东,淘宝等双十一活动多多,送券,满多少送多少等买很多物品后,再使用优惠券等,不同的下单方式都会有不同的实惠。

比如现有下面的活动,图书狂欢节,每满100减50。结算时还可以使用优惠券。现有两张现金结算券,一张是满300减100(券1),一张是满150减50(券2)。用户希望购买下面的书单。

《书1》价格 175

《书2》价格 22.6

《书3》价格 37.5

《书4》价格 65.6

《书5》价格 160.9

《书6》价格 84.6

《书7》价格 355.8

 

总计: 902 元。

 

如果

只下一单的话,那么需要支付为 902 - (902/100)*50 = 452元。1)如果使用券1,则需要额外付452-100 = 352, 2)如果使用券2,则额外付款 452-50 =402元。

 

请问如何下单才能在使用现金支付最少的情况下将这几本书都买入?最少支付多少现金?

 

思路:

 

首先计算出不使用优惠券的情况下商品总额 452.

以及单买每件商品需要多少钱:

  1. 175-50 =125  (每满100减50),75元没有享受优惠
  2. 22.6  22.6元没有享受优惠
  3. 37.5  37.5元没有享受优惠
  4. 65.6  65.6元没有享受优惠
  5. 160.9-50=110.9 (每满100减50)60.9元没有享受优惠
  6. 84.6  84.6元没有享受优惠
  7. 355.8-150=205.8 (每满100减50) 55.8元没有享受优惠

合计 652.  合计(75+22.6+37.5+65.6+60.9+84.6+55.8=402)元没有享受优惠,可以享受200元优惠。

 

凑单的原则就是享受的优惠最大化。

首先排序?

 

22.6 < 37.5 < 65.8 < 84.6 < 160.9 < 175 < 355.8

 

如果不考虑优惠券的情况下,确保没有享受优惠的额度最少

 

如果考虑优惠券的情况下,希望

   1.最划算的那张优惠券被使用掉了。

  1. 尽可能多的使用优惠券。

 

使用某张优惠券时,也希望没享受优惠的那部分最少!

 

 

 

10, 20, 30, 40, 50, 60, 70, 80,90 (450) 满300减150 和满100减50

 

10,90,20,80,30,70 =300-150=150

 

40,60,50 =150 - 50 = 100

 

90,20,80,30,70 ,50 =340-150=190

40,60,10 = 110-50=60 (不能包邮,还需购物或者出额外的费用)

 

=190+60=250

 

未完待续

发表评论