公司发了某商店的购物券1000元,限定只能购买店中的m种商品。每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法。

程序输入:
第一行是一个整数m,代表可购买的商品的种类数。
接下来是m个整数,每个1行,分别代表这m种商品的单价(0<m<1000)。
程序输出:
第一行是一个整数,表示共有多少种方案
第二行开始,每种方案占1行,表示对每种商品购买的数量,中间用空格分隔。
例如:

输入:
2
200
300
则应输出:
2
2 2
5 0

输入:
2
500
800
则应输出:
1
2 0

输入:
1
999
则应输出:
0

多个方案间的顺序不重要。

package com.liu.ex3;import java.util.ArrayList;
import java.util.Scanner;public class Main {public static ArrayList<Integer> list = new ArrayList<Integer>();public static int[][] value;public static int m;public static int count = 0;public static String result = "";public void dfs(int sum, int step) {if(step == m) {if(sum == 1000) {for(int i = 0;i < list.size();i++) {result += list.get(i)+" ";}result += "\n";count++;}return;} else {for(int i = 0;i <= value[step][1];i++) {sum += value[step][0] * i;list.add(i);dfs(sum, step + 1);sum -= value[step][0] * i;list.remove(list.size() - 1);}}}public static void main(String[] args) {Main test = new Main();Scanner in = new Scanner(System.in);m = in.nextInt();value = new int[m][2];for(int i = 0;i < m;i++) {int a = in.nextInt();int num = 1000 / a;value[i][0] = a;value[i][1] = num;}test.dfs(0, 0);if(count == 0)System.out.println("0");elseSystem.out.println(count+"\n"+result);}
}

java实现购物券消费方案相关推荐

  1. java内存泄露分析方案

    java内存泄露分析方案 - 准备工作 1.工具:Memory Analyzer Tool (mat); 1)安装Memory Analyzer Tool (mat) 2.原料:dump.hprof ...

  2. Java Base64 编码解码方案总结

    转载自  Java Base64 编码解码方案总结 Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便.在实际应 ...

  3. Java Web开发技术方案

    Java Web开发技术方案 Java Web开发分前端.后端: Java Web前端: -就是在Web应用中用户可以看得见碰得着的东西.包括Web页面的结构.Web的外观视觉表现以及Web层面的交互 ...

  4. Apache Kafka:使用java方式操作消费组和重置分区偏移量(admin api)

    当前版本:kafka_2.12-2.8.0 1. 声明 当前内容主要为本人学习和测试使用java方式操作消费组和重置分区偏移量,主要参考:Apache Kafka官方文档 主要为: 使用java方式实 ...

  5. Kafka 顺序消费方案

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/qq_38245668/article/ details/105900011 前言 本文针对解决K ...

  6. 深入分析Java单例模式的各种方案

    单例模式 Java内存模型的抽象示意图: 所有单例模式都有一个共性,那就是这个类没有自己的状态.也就是说无论这个类有多少个实例,都是一样的:然后除此者外更重要的是,这个类如果有两个或两个以上的实例的话 ...

  7. java服务自动降级方案_在京东我们是如何做服务降级的

    当我们依赖的中间件资源或者是上游服务性能出现严重问题时,为了防止用户看到错误页面或者加载页面时间过长,我们需要将服务降级静态页面.或者将不影响主流程的旁路服务关闭掉,以让出资源给主要流程.这类操作称为 ...

  8. Java实现消息消费

    接收消息 消息接收步骤: 1. 创建消息消费者, 指定消费者所属的组名 2. 指定Nameserver地址 3. 指定消费者订阅的主题和标签 4. 设置回调函数,编写处理消息的方 5. 启动消息消费者 ...

  9. java kafka 多线程消费

    我们先来看下简单的kafka生产者和消费者模式代码: 生产者KafkaProducer /** * @author xiaofeng * @version V1.0 * @title: KafkaPr ...

最新文章

  1. BP as a Vendor and Customer Configuration
  2. 关于Python中的yield(转载)
  3. 20145106 《Java程序设计》第10周学习总结
  4. 【Ubuntu】Linux必备软件之Samba
  5. mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程
  6. [NOI2009] 变换序列 (匈牙利最大匹配)
  7. oracle和mysql数据实时同步_异构数据源的CDC实时同步系统——最终选型实战
  8. 有关系统环境变量的设置问题
  9. libcurl上传文件
  10. uva 10245 The Closest Pair Problem_枚举
  11. Launchy – 快速调出你的程序
  12. 【华为云技术分享】云图说|超赞!终于有人把云存储“三兄弟”讲清楚了!
  13. 安全测试工具-kali_无需整理
  14. CVPR(IEEE Conference on Computer Vision and Pattern Recognition)
  15. 人脸识别库-于仕琪老师库地址
  16. MATLAB函数随笔画图篇
  17. 算法题 吹气球 javascript
  18. SCRATCH编程与科学——简单电路
  19. APP专项测试-弱网测试
  20. vue使用高德地图-进行显示地图和查询天气

热门文章

  1. 液晶显示模块(LCM)介绍
  2. linux下ps、grep和kill联合使用杀掉进程
  3. 【华人学者风采】林跃河 华盛顿州立大学
  4. 【开发工具】IDEA Lua 开发环境配置(完整无错)
  5. weixuan -小老弟做鸭(函数)
  6. 基于Python的岭回归与LASSO回归模型介绍及实践
  7. 7款功能超牛的电脑软件,分分钟提高效率!
  8. 听计算机课验课题评语,听课记录评语及建议
  9. php连接数据库的留言板,PHP+MySql实现简单的留言板功能
  10. 如何在react中禁止浏览器后退