当前位置: 首页 > news >正文

做网站提高淘宝店排名辽宁省建设行业协会网站

做网站提高淘宝店排名,辽宁省建设行业协会网站,redis加速wordpress,代运营被骗怎么追回为了计算双十一期间多产品使用优惠券后的实付款省钱方案#xff0c;我们需要一个更复杂的逻辑来处理优惠券的应用和叠加规则。以下是一个简化的Java示例#xff0c;用于展示如何计算多种优惠券应用于多个产品后的实付款金额#xff0c;并找出最省钱的方案。 首先#xff0…为了计算双十一期间多产品使用优惠券后的实付款省钱方案我们需要一个更复杂的逻辑来处理优惠券的应用和叠加规则。以下是一个简化的Java示例用于展示如何计算多种优惠券应用于多个产品后的实付款金额并找出最省钱的方案。 首先我们定义一些类和方法 Product 类表示产品包含名称和价格。Coupon 类表示优惠券包含类型如满减、折扣等、金额、使用条件如满多少元可用以及适用的产品集合如果有的话。Order 类表示订单包含要购买的产品列表和已应用的优惠券列表。ShoppingCart 类表示购物车用于管理订单和计算实付款金额。 然后我们实现一个方法来生成所有可能的优惠券组合并计算每种组合下的实付款金额。最后我们找出实付款金额最小的组合即为最省钱的方案。 import java.util.*; class Product { String name; double price; public Product(String name, double price) { this.name name; this.price price; } } class Coupon { String type; // 优惠券类型如满减、折扣等 double amount; // 优惠券金额或折扣比例 double condition; // 使用条件如满多少元可用 SetString applicableProducts; // 适用的产品集合可选 public Coupon(String type, double amount, double condition, SetString applicableProducts) { this.type type; this.amount amount; this.condition condition; this.applicableProducts applicableProducts; } // 判断优惠券是否可用于给定的产品集合 public boolean isApplicable(SetProduct products) { if (applicableProducts null || applicableProducts.isEmpty()) { return true; // 没有指定适用产品则可用于所有产品 } for (Product product : products) { if (applicableProducts.contains(product.name)) { return true; // 至少有一个适用产品 } } return false; // 没有适用产品 } // 计算优惠券优惠金额 public double calculateDiscount(double totalPrice) { if (type.equals(满减)) { return Math.min(amount, totalPrice - condition); // 满减不能超过总价减去条件金额 } else if (type.equals(折扣)) { return totalPrice * (1 - amount / 100); // 折扣是以百分比形式给出 } return 0; } } class Order { ListProduct products; ListCoupon appliedCoupons; public Order(ListProduct products) { this.products products; this.appliedCoupons new ArrayList(); } // 计算订单总价未应用优惠券 public double calculateTotalPrice() { return products.stream().mapToDouble(product - product.price).sum(); } // 计算订单实付款金额已应用优惠券 public double calculateFinalPrice() { double totalPrice calculateTotalPrice(); double discount appliedCoupons.stream().mapToDouble(coupon - coupon.calculateDiscount(totalPrice)).sum(); return totalPrice - discount; } } class ShoppingCart { ListProduct products; ListCoupon coupons; public ShoppingCart(ListProduct products, ListCoupon coupons) { this.products products; this.coupons coupons; } // 生成所有可能的优惠券组合并找出最省钱的方案 public Order findBestDiscountScheme() { int n coupons.size(); Order bestOrder null; double minFinalPrice Double.MAX_VALUE; // 递归生成所有优惠券组合 generateCouponCombinations(0, new ArrayList(), products, (couponsToApply) - { Order order new Order(new ArrayList(products)); order.appliedCoupons.addAll(couponsToApply); double finalPrice order.calculateFinalPrice(); if (finalPrice minFinalPrice) { minFinalPrice finalPrice; bestOrder order; } }); return bestOrder; } // 递归生成优惠券组合的辅助方法 private void generateCouponCombinations(int index, ListCoupon currentCombination, ListProduct products, ConsumerListCoupon callback) { if (index coupons.size()) { // 达到递归终点调用回调方法处理当前组合 callback.accept(new ArrayList(currentCombination)); return; } // 不使用当前优惠券 generateCouponCombinations(index 1, currentCombination, products, callback); // 使用当前优惠券如果可用 Coupon coupon coupons.get(index); SetProduct productSet products.stream().collect(Collectors.toSet()); if (coupon.isApplicable(productSet)) { ListCoupon newCombination new ArrayList(currentCombination); newCombination.add(coupon); generateCouponCombinations(index 1, newCombination, products, callback); } } } public class Main { public static void main(String[] args) { ListProduct products Arrays.asList( new Product(产品1, 100), new Product(产品2, 200), new Product(产品3, 300) ); ListCoupon coupons Arrays.asList( new Coupon(满减, 50, 300, null), // 满300减50适用于所有产品 new Coupon(折扣, 90, 100, new HashSet(Arrays.asList(产品1))) // 满100打9折仅适用于产品1 ); ShoppingCart cart new ShoppingCart(products, coupons); Order bestOrder cart.findBestDiscountScheme(); System.out.println(最省钱的方案); System.out.println(实付款金额 bestOrder.calculateFinalPrice()); System.out.println(已应用的优惠券); for (Coupon coupon : bestOrder.appliedCoupons) { System.out.println(coupon.type coupon.amount coupon.condition (coupon.applicableProducts ! null ? coupon.applicableProducts : 所有产品)); } } } 请注意这个示例代码有几个假设和简化 优惠券可以叠加使用但实际应用中可能有更复杂的规则。优惠券的适用产品是通过名称匹配的实际应用中可能需要更复杂的逻辑来确定哪些产品适用。没有处理优惠券使用次数的限制。没有处理优惠券和促销活动之间的优先级关系。
http://www.w-s-a.com/news/73620/

相关文章:

  • 免费做网站怎么做网站想在网上卖东西怎么注册
  • 淘宝网站建设的策划书网投怎么做网站
  • 如何免费做公司网站视频网站开发视频
  • 网站后台是怎么更新wordpress 大于2m的xm
  • 制作网页设计软件列表案例营销网站优化seo
  • 住房和建设建设局网站报告长官夫人在捉鬼
  • 用asp做网站需要什么软件天津建设工程信息网怎么注册
  • 一站式服务图片北京网站优化多少钱
  • 专业的论坛网站建设全网加速器
  • 成都品牌建设网站公司表单制作小程序
  • 手机端 网站 模板网页广告关不掉怎么办
  • 软装公司网站建设有没有做任务的网站
  • 加盟招商网站建设工业设计网站 知乎
  • 怎么做淘宝客网站优化免费windows7云主机
  • 有什么网站可以推广信息沈阳网站建设思路
  • 网站建设可研域名解析在线工具
  • 鲜花销售网站模板wordpress+模版+推荐
  • 企业网站报价网站域名 没有续费
  • 机关门户网站建设管理情况邮箱登陆嵌入网站
  • 创建网站超市网站建设后还有什么费用
  • 徐州泉山区建设局网站企业网站注册官网
  • 西青网站建设暴雪回归
  • 如何生成网站建设局建筑电工证查询网站
  • 网站改版建设原则网站网站建设公司上海
  • 网站推广见效快的方法深圳高端网站建设网页设计
  • 建设银行官网首页网站购纪念币接做网站需要问什么条件
  • 网站的ftp地址是什么江苏做网站
  • 宁波网站建设制作公司哪家好潍坊建公司网站
  • 云端网站建设php7 wordpress速度
  • 建站的公司中小企业网站建设报告