公司发了某商店的购物券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");
else
System.out.println(count+"\n"+result);
}
}

最新文章

  1. 去除magento多店铺URL地址中的“___from_store=”
  2. 关于标准C语言的预定义宏【转】
  3. 微信中修改title
  4. 中文分词系列(二) 基于双数组Tire树的AC自动机
  5. 7款超具个性的HTML5播放器
  6. P2P直播、点播技术学习经验
  7. 组策略彻底解决windows 2003 终端数
  8. MySQL 初学笔记 ① -- MySQL用户登录权限控制
  9. JsonArray和JsonObject遍历方法
  10. 下载jar包的网站
  11. Linux 系统下实践 VLAN
  12. springboot 02-PropertiesFile 自定义配置属性,多环境配置
  13. 2601 电路维修 (双端队列bfs\优先队列bfs(最短路))
  14. 函数指针的理解 from 数据结构
  15. ABP框架系列之十七:(Data-Filters-数据过滤)
  16. nginx 配置静态文件
  17. 【Jmeter基础知识】Jmeter的三种参数化方式
  18. 【Coursera】高斯混合模型
  19. js实现trim()方法
  20. Hibernate根据方言dialect动态连接多数据库

热门文章

  1. electron——通知
  2. js日期格式与时间戳相互转换
  3. java实例化对象的几种方式
  4. jmeter学习之安装篇(一)
  5. linux常用命令---文件软硬链接
  6. Python 如何随机打乱列表(List)排序
  7. GreenPlum-数据存储目录迁移及常用操作
  8. storm-jdbc详解
  9. Scaner对象
  10. 王艳 201771010127《面向对象程序设计(Java)》第四周学习总结