改题目为作者购物时突发奇想,问题合理性与代码可行性仍需验证,有相同代码经历的可以私聊我

实现目的:在拥有多个不可叠加的满减优惠劵时,所购物品单价为{a1,a2,a3,a4,a5.}得出最省钱的一套方案,即任意组合数之和最接近满减优惠数额.
{a1,a2,a4}
{a3,a5}

案例输入:

1,99.5,,57,,50.7

案例输出

{1,99.5}(和为100.5)
{57,50.7}(和为107.7)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;public class CaseTestPrice {/*** 用递归的思想来求排列跟组合  然后应用到满减活动*/public static void main(String[] args) {// 一堆书的价格Object[] tmp = { 13.5,99.5,18.8,8.5,47,9.9,50.7 };// Object[] tmp = str.split(" ");int minCount = 200;// 满200int maxCount = 220;// 自己认为的最大限制int num = 0;ArrayList<Object[]> rs = cmn(tmp,2);// ArrayList<Object[]> rs = cmn(tmp, 3);//3个的组合// ArrayList<Object[]> rs = cmn(tmp, 4);//4个的组合for (int i = 0; i < rs.size(); i++){// System.out.print(i+"=");Double countTemp = 0.0;String strTemp = "";for (int j = 0; j < rs.get(i).length; j++) {countTemp = countTemp + Double.parseDouble(rs.get(i)[j].toString());// System.out.print(rs.get(i)[j] + ",");strTemp += rs.get(i)[j] + ",";}// System.out.println();if (minCount < countTemp && countTemp <= maxCount) {num++;System.out.println("满" + minCount + "减,方案" + num + ":" + countTemp + "\n组合是:" + strTemp + "\n");}}}// 求一个数组的任意组合static ArrayList<Object[]> RandomC(Object[] source) {ArrayList<Object[]> result = new ArrayList<Object[]>();if (source.length == 1) {result.add(source);} else {Object[] psource = new Object[source.length - 1];for (int i = 0; i < psource.length; i++) {psource[i] = source[i];}result = RandomC(psource);int len = result.size();// fn组合的长度result.add((new Object[] { source[source.length - 1] }));for (int i = 0; i < len; i++) {Object[] tmp = new Object[result.get(i).length + 1];for (int j = 0; j < tmp.length - 1; j++) {tmp[j] = result.get(i)[j];}tmp[tmp.length - 1] = source[source.length - 1];result.add(tmp);}}return result;}// 求指定长度的数组任意组合static ArrayList<Object[]> cmn(Object[] source, int n) {ArrayList<Object[]> result = new ArrayList<Object[]>();if (n == 1) {for (int i = 0; i < source.length; i++) {result.add(new Object[] { source[i] });}} else if (source.length == n) {result.add(source);} else {Object[] psource = new Object[source.length - 1];for (int i = 0; i < psource.length; i++) {psource[i] = source[i];}result = cmn(psource, n);ArrayList<Object[]> tmp = cmn(psource, n - 1);for (int i = 0; i < tmp.size(); i++) {Object[] rs = new Object[n];for (int j = 0; j < n - 1; j++) {rs[j] = tmp.get(i)[j];}rs[n - 1] = source[source.length - 1];result.add(rs);}}return result;}}```

双11购物优惠劵 满减计算程序相关推荐

  1. 2021年京东双11购物节如何买才能最优惠?京东双11优惠规则规则

    2021年京东双11购物节如何买才能最优惠?京东双11优惠规则规则 2021年"双11"已经打响了第一枪.10月17日,京东举行"双11"大促发布会," ...

  2. 2022年天猫双11购物节,10月24日晚8点预售来袭

    2022年天猫双11购物节,10月24日晚8点预售来袭 这对于爱网购的小姐姐们一定都知道接下来会发生什么事情了,双11第一波预售将至,我们可以为买衣服鞋帽做清单了,据天猫的微博了解,2022年的天猫双 ...

  3. 动态规划应用--双11购物凑单

    文章目录 1. 问题描述 2. 代码实现 1. 问题描述 双11购物节的时候,某宝给你很多张满300减50的优惠券,你想组合各种商品的价格总和>=300,且金额总和越接近300越好,这样可以多薅 ...

  4. 一款告诉你历史价格的插件,双11购物必备!

    大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 双11就快到啦,但实际上双11的促销活动从前几天就开始了,相信许多小伙伴已经买了不少心仪的物品,不过TJ君在淘宝.京东购物的时候经常会 ...

  5. 一款告诉你历史价格的插件,双11购物神器!

    在剁手党眼里,每年的天猫双11是电商一年中最重要也是最后收尾的大力度促销期,在这一天可以尽情的买买买. 在运营汪心里,双十一是一年里最盛大的电商阅兵,各家电商都会排兵布阵做出不一样的精彩.主场作战的阿 ...

  6. 护航Lazada双11购物节 阿里云CDN全球化火力全开

    2018年11月12日零点--东南亚最大的电子商务公司Lazada 2018双11购物节正式收官.这是一场超过2000万的消费者在Lazada网站上及APP上浏览和疯狂抢购的盛会. Lazada是东南 ...

  7. 【报告分享】2009-2019年“双11”购物节关键数据盘点与发展趋势分析报告.pdf(附下载链接)

    不知不觉"双11"购物节已经十周年了,你还记得当年的光棍节吗?今天就来给大家分享并回顾下这个中国特色的节日. 今天分享的报告来自前瞻产业研究院于2019年11月发布的主题研究报告& ...

  8. 双11购物节火热,谨防木马乘机而入

    腾讯电脑管家 · 2015/11/12 16:24 0x00 概况 近期11.11购物节,无数的网页.软件都充斥着"血拼双11"的广告,这时的电脑桌面如果多了几个双11相关的快捷方 ...

  9. 双11购物超A股单日成交

    双十一购物和买A股最大的差别,就是A股消费者不能在第二天取消订单说:把钱还我,我不玩了. 一种类似于股票市场牛市来了一样的仪式性购物狂热行为,在上周末落下帷幕.中国内地两家最大的电商网站天猫和京东,以 ...

最新文章

  1. Spring Boot第二篇:Spring Boot配置文件详解
  2. 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
  3. Spring3.0 AOP 详解
  4. Android华容道之一步一步实现-4-图像块移动算法
  5. boost::future相关的测试程序
  6. 1亿条数据如何分表100张到Mysql数据库中(PHP)
  7. Java面向对象进阶
  8. JavaScript(JS)常用正则表达式汇总
  9. FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
  10. 最新 HTTP/2 漏洞曝光,直指 Kubernetes!
  11. 算法完成了如何开发服务端API?
  12. PVE安装画面灰白只显示鼠标解决方案
  13. K8S集群搭建,并部署nginx实现跨网络访问
  14. Java设计模式策略模式(附实例代码)每天一学设计模式
  15. nodeJs实现发短信验证码功能
  16. 微信小程序自定义输入框个数
  17. 【Redis学习08】Redis消息队列实现异步秒杀
  18. auto.js 001 打开文章及视频
  19. 【盛派周三分享-2019.2.20】开放分享内容,本期主题:《SCF、DDD及相关架构思想讨论》...
  20. 学银在线python课程_清华计算机系第一课:1615集 Python+Java+web等编程视频课程流出...

热门文章

  1. centos查看正在运行的服务_win7电脑服务器正在运行中的解决教程
  2. 快速索引词向量-annoy
  3. 不同显卡对mrt 的支持
  4. 轻量云服务器远程连接不了怎么办?
  5. 网站 域名 空间的理解
  6. 展讯平台camera tuning客观流程
  7. 部标JT808协议处理方案
  8. QBarCategoryAxis、QColorAxis、QDateTimeAxis、QLogValueAxis、QValueAxis
  9. 读者写者问题(超级详细的分析读者优先,读写平等,写者优先)
  10. 神器推荐!这几款 Windows 软件,非常实用!