public static void main(String[] args) {//先封装一个总体的需要满减的金额Map<Integer, BigDecimal> skuToMap = new HashMap<>();for (int i = 1; i < 100; i++) {skuToMap.put(i, RandomUtil.randomBigDecimal(new BigDecimal(10), new BigDecimal(40)).setScale(2, BigDecimal.ROUND_DOWN));}BigDecimal totalFullAmount = BigDecimal.ZERO;for (Map.Entry<Integer, BigDecimal> longBigDecimalEntry : skuToMap.entrySet()) {totalFullAmount = totalFullAmount.add(longBigDecimalEntry.getValue());}//满减满足条件减去的金额BigDecimal totalReducePrice = RandomUtil.randomBigDecimal(new BigDecimal(10), new BigDecimal(30)).setScale(2, BigDecimal.ROUND_DOWN);if (totalFullAmount.compareTo(totalReducePrice) > 0) {//循环满减方式向下取整类似天猫满200减30BigDecimal averageReducePrice = totalReducePrice.divide(totalFullAmount, 2, BigDecimal.ROUND_DOWN);int mapSize = skuToMap.size();int i = 0;BigDecimal alreadyReducePrice = BigDecimal.ZERO;Map<Integer, BigDecimal> sssss = new LinkedHashMap<>();skuToMap.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getValue)).collect(Collectors.toList()).forEach(ele -> sssss.put(ele.getKey(), ele.getValue()));for (Map.Entry<Integer, BigDecimal> longBigDecimalEntry : sssss.entrySet()) {Integer skuId = longBigDecimalEntry.getKey();BigDecimal price = longBigDecimalEntry.getValue();if (mapSize - i == 1) {//TODO 这里存在问题,如果这个商品的金额小于或者等于最后的满减金额这里会为负值或者为0的情况BigDecimal skuReducePrice = totalReducePrice.subtract(alreadyReducePrice).setScale(2, BigDecimal.ROUND_DOWN);alreadyReducePrice = alreadyReducePrice.add(skuReducePrice);System.out.println(skuReducePrice);} else {BigDecimal skuReducePrice = price.multiply(averageReducePrice).setScale(2, BigDecimal.ROUND_DOWN);alreadyReducePrice = alreadyReducePrice.add(skuReducePrice);System.out.println(skuReducePrice);}i++;}System.out.println(alreadyReducePrice.compareTo(totalReducePrice) == 0);}}

满减活动基础算法-java-类似淘宝满200减30相关推荐

  1. 2022年双11淘宝满减规则解读

    2022年双11淘宝满减规则解读 双11期间主要关注双十一红包,那么今年淘宝双11满减活动有没有?因为10月24日20点双11预售就开始了,不少小姐姐想知道2022年淘宝双十一满减是多少,本文小编赵一 ...

  2. 写一个类似淘宝的ios app需要用到哪些技术?

    写一个类似淘宝的ios app需要用到哪些技术? 让我想起了有人私信我,说不缺钱,做个类似知乎的东西,包括加运营,需要多少钱. 扯淡结束,正好最近看了一点这方面的东西,也许对题主来说有点帮助. 手机淘 ...

  3. App 金刚区导航菜单,类似淘宝、QQ 音乐等 APP 导航,方格布局横向滑动翻页带滚动条

    TransformersLayout 项目地址:zaaach/TransformersLayout  简介: :fire: App 金刚区导航菜单,类似淘宝.QQ 音乐等 APP 导航,方格布局横向滑 ...

  4. VUE类似淘宝选择商品多规格(库存判断)

    1.组件效果展示 也可访问链接查看网页效果... 后面又用uni-app写过一次,比这次稍微清晰一些 uni-app类似淘宝选择商品多规格(库存判断) 瞎封装组件系列: VUE简单提示框 VUE树形图 ...

  5. 类似淘宝不规则九宫格

    今天看到一个demo 发现上面有个类似淘宝的不规则的九宫格布局,收藏下,写下来,与君分享. <LinearLayoutandroid:layout_width="match_paren ...

  6. vue 实现类似淘宝的商品详情页的商品展示

    vue 实现类似淘宝的商品详情页的商品展示 利用vue和swiper实现缩略图控制 / Swiper互相控制 具体需求描述: 图片大图自动轮播展示,下面的缩略图跟着变化,点击小图切换到对应的大图,大图 ...

  7. JavaScript之衣服相册切换效果(类似淘宝商品图切换)

    JavaScript之衣服相册切换效果(类似淘宝商品图切换) 话不多说,直接上代码: <!DOCTYPE html> <html lang="en"> &l ...

  8. 类似淘宝详情页SKU页面

    下载地址 类似淘宝详情页SKU页面样式代码,jQuery实现的多图切换效果. dd:

  9. 短视频直播源码,显示和隐藏 类似淘宝加载

    短视频直播源码,显示和隐藏 类似淘宝加载的相关代码 1:当点击HomeActity中的Tab时,首先 case 1:case 2:if ( fg2== null) {fg2 = new Fragmen ...

最新文章

  1. VMware或者KVM克隆的虚拟机网卡无法启动
  2. python教学在线观看-python在线学习
  3. 模型验证的常用武器k-s
  4. Page Object设计模式实践
  5. 解决svn中“工作副本已经锁定”,或者svn清理失败的解决方法
  6. iphone win7无法识别_win7系统电脑插入苹果设备提示“无法识别IOS设备”的原因和解决方法...
  7. 11个非常炫酷的网页样式特效【附实现代码】
  8. Android 广告图片 全屏图片适配方案的思路
  9. JDO与JPA哪个更好?
  10. 如何编写智能合约(Smart Contract)?(II)建立加密代币
  11. 敦煌文化背后的区块链,让你的莫高窟线上燃灯被“永久”点亮
  12. 联网报警器红外探头的工作原理
  13. java计算机毕业设计老鹳窝旅游网源码+系统+数据库+lw文档+mybatis+运行部署
  14. 知识库的分类梳理原则与实践经验
  15. 谷歌浏览器开发者工具 preserve log
  16. 轻松搞定java高薪
  17. 作文组装计算机,组装机器人作文
  18. Linux 复制文件命令 cp 例子
  19. Linux 天文软件YAO保存图片(PSF wavefront等)
  20. 大学计算机基础实验教程上答案,大学计算机基础实验教程答案第四章

热门文章

  1. 计算机面板里左侧的桌面不见了,WinXP控制面板左侧的切换分类视图不见了如何找回 -电脑资料...
  2. 虚拟内购服务器,苹果APP内购客户付款成功,没收到相应虚拟产品的解决办法
  3. app开屏广告实现——借助webview和原生fetch请求实现
  4. HBuilder连接不上逍遥Android模拟器
  5. 新浪云服务器 java 部署
  6. 打开GitHub官网缓慢
  7. 第一个爬图片的程序(xkcd.com)
  8. 搭建内网yum源镜像仓库
  9. Win10自动修复无法开机【完美解决】
  10. LSCP: Locally Selective Combination in Parallel Outlier Ensembles-学习笔记