蓝桥杯java试题购物券公司发了某商店的购物券1000元,限定只能购买店中的m种商品.每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法.程序输入:第一行
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/24 00:59:04
![蓝桥杯java试题购物券公司发了某商店的购物券1000元,限定只能购买店中的m种商品.每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法.程序输入:第一行](/uploads/image/z/14740595-35-5.jpg?t=%E8%93%9D%E6%A1%A5%E6%9D%AFjava%E8%AF%95%E9%A2%98%E8%B4%AD%E7%89%A9%E5%88%B8%E5%85%AC%E5%8F%B8%E5%8F%91%E4%BA%86%E6%9F%90%E5%95%86%E5%BA%97%E7%9A%84%E8%B4%AD%E7%89%A9%E5%88%B81000%E5%85%83%2C%E9%99%90%E5%AE%9A%E5%8F%AA%E8%83%BD%E8%B4%AD%E4%B9%B0%E5%BA%97%E4%B8%AD%E7%9A%84m%E7%A7%8D%E5%95%86%E5%93%81.%E6%AF%8F%E7%A7%8D%E5%95%86%E5%93%81%E7%9A%84%E4%BB%B7%E6%A0%BC%E5%88%86%E5%88%AB%E4%B8%BAm1%2Cm2%2C%E2%80%A6%2C%E8%A6%81%E6%B1%82%E7%A8%8B%E5%BA%8F%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E7%9A%84%E6%AD%A3%E5%A5%BD%E8%83%BD%E6%B6%88%E8%B4%B9%E5%AE%8C%E8%AF%A5%E8%B4%AD%E7%89%A9%E5%88%B8%E7%9A%84%E4%B8%8D%E5%90%8C%E8%B4%AD%E7%89%A9%E6%96%B9%E6%B3%95.%E7%A8%8B%E5%BA%8F%E8%BE%93%E5%85%A5%EF%BC%9A%E7%AC%AC%E4%B8%80%E8%A1%8C)
蓝桥杯java试题购物券公司发了某商店的购物券1000元,限定只能购买店中的m种商品.每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法.程序输入:第一行
蓝桥杯java试题购物券
公司发了某商店的购物券1000元,限定只能购买店中的m种商品.每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法.
程序输入:第一行是一个整数m,代表可购买的商品的种类数.
接下来是m个整数,每个1行,分别代表这m种商品的单价(0
蓝桥杯java试题购物券公司发了某商店的购物券1000元,限定只能购买店中的m种商品.每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法.程序输入:第一行
public class Cal {
private static Integer price[];
private static Integer result[];
private static Integer num;
private static List<Integer[]> list = new ArrayList<Integer[]>();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String numStr = br.readLine();
num = Integer.parseInt(numStr);
if(num==null||num==0) return;
price = new Integer[num];
result = new Integer[num];
for(int i=0; i<num; i++){
result[i] = 0;
}
for(int i=0; i<num; i++){
price[i] = Integer.parseInt(br.readLine());
}
cal(1000, 0);
System.out.println(list.size());
for(Integer[] resu : list){
for(Integer n : resu){
System.out.print(n+" ");
}
System.out.println();
}
}
public static void cal(int money, int i){
if(money<0)return;
if(i>=num)return;
if(money==0){
Integer[] line = new Integer[num];
for (int j = 0; j < line.length; j++) {
line[j] = result[j];
}
list.add(line);
return;
}
for(;i<num;i++){
result[i]++;
cal(money-price[i], i);
result[i]--;
}
}
}