java实现购物券消费方案
公司发了某商店的购物券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实现购物券消费方案相关推荐
- java内存泄露分析方案
java内存泄露分析方案 - 准备工作 1.工具:Memory Analyzer Tool (mat); 1)安装Memory Analyzer Tool (mat) 2.原料:dump.hprof ...
- Java Base64 编码解码方案总结
转载自 Java Base64 编码解码方案总结 Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便.在实际应 ...
- Java Web开发技术方案
Java Web开发技术方案 Java Web开发分前端.后端: Java Web前端: -就是在Web应用中用户可以看得见碰得着的东西.包括Web页面的结构.Web的外观视觉表现以及Web层面的交互 ...
- Apache Kafka:使用java方式操作消费组和重置分区偏移量(admin api)
当前版本:kafka_2.12-2.8.0 1. 声明 当前内容主要为本人学习和测试使用java方式操作消费组和重置分区偏移量,主要参考:Apache Kafka官方文档 主要为: 使用java方式实 ...
- Kafka 顺序消费方案
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/qq_38245668/article/ details/105900011 前言 本文针对解决K ...
- 深入分析Java单例模式的各种方案
单例模式 Java内存模型的抽象示意图: 所有单例模式都有一个共性,那就是这个类没有自己的状态.也就是说无论这个类有多少个实例,都是一样的:然后除此者外更重要的是,这个类如果有两个或两个以上的实例的话 ...
- java服务自动降级方案_在京东我们是如何做服务降级的
当我们依赖的中间件资源或者是上游服务性能出现严重问题时,为了防止用户看到错误页面或者加载页面时间过长,我们需要将服务降级静态页面.或者将不影响主流程的旁路服务关闭掉,以让出资源给主要流程.这类操作称为 ...
- Java实现消息消费
接收消息 消息接收步骤: 1. 创建消息消费者, 指定消费者所属的组名 2. 指定Nameserver地址 3. 指定消费者订阅的主题和标签 4. 设置回调函数,编写处理消息的方 5. 启动消息消费者 ...
- java kafka 多线程消费
我们先来看下简单的kafka生产者和消费者模式代码: 生产者KafkaProducer /** * @author xiaofeng * @version V1.0 * @title: KafkaPr ...
最新文章
- BP as a Vendor and Customer Configuration
- 关于Python中的yield(转载)
- 20145106 《Java程序设计》第10周学习总结
- 【Ubuntu】Linux必备软件之Samba
- mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程
- [NOI2009] 变换序列 (匈牙利最大匹配)
- oracle和mysql数据实时同步_异构数据源的CDC实时同步系统——最终选型实战
- 有关系统环境变量的设置问题
- libcurl上传文件
- uva 10245 The Closest Pair Problem_枚举
- Launchy – 快速调出你的程序
- 【华为云技术分享】云图说|超赞!终于有人把云存储“三兄弟”讲清楚了!
- 安全测试工具-kali_无需整理
- CVPR(IEEE Conference on Computer Vision and Pattern Recognition)
- 人脸识别库-于仕琪老师库地址
- MATLAB函数随笔画图篇
- 算法题 吹气球 javascript
- SCRATCH编程与科学——简单电路
- APP专项测试-弱网测试
- vue使用高德地图-进行显示地图和查询天气