我有一组多维数组,包含食物和食物的价格。用户输入食物及其价格,这些都放在数组中。我知道数组已成功填充用户输入的内容,因为我已经通过打印出来测试了它。那段代码仍然在我的例子中,但可以忽略。但我需要做的是打印出有限金额的餐食组合,餐必须有1块肉,2个水果,3个蔬菜和1个面食。我无法弄清楚如何让它发挥作用。我知道我需要解析食物的价格才能用于数学。我感谢任何帮助。
public static void fillarrays(){
String meatarray [][] = {{meat1,meat2,meat3},{meatprice1,meatprice2,meatprice3}};
String fruitarray [][] = {{fruit1,fruit2,fruit3,fruit4,fruit5,fruit6},{fruitprice1,fruitprice2,fruitprice3,fruitprice4,fruitprice5,fruitprice6}};
String vegetablearray [][] = {{veg1,veg2,veg3,veg4,veg5,veg6,veg7,veg8},{vegprice1,vegprice2,vegprice3,vegprice4,vegprice5,vegprice6,vegprice7,vegprice8}};
String pastaarray [][] = {{pasta1,pasta2,pasta3,pasta4},{pastaprice1,pastaprice2,pastaprice3,pastaprice4}};
System.out.println("Meat");
displayarray(meatarray);
System.out.println("Fruit");
displayarray(fruitarray);
System.out.println("Vegetables");
displayarray(vegetablearray);
System.out.println("Pasta");
displayarray(pastaarray);
}
public static void displayarray(String x[][]){
for(int row=0; row<x.length; row++){
for(int column=0; column<x[row].length; column++){
System.out.print(x[row][column] + "\t\t" );
}
System.out.println();
}
}
答案 0 :(得分:0)
你可以这样做:
long maxPrice = // ...
for(int m = 0 ; m < meatarray[1].length ; ++m) {
if(meatarray[1][m] <= maxPrice) {
for(int f = 0 ; f < fruitarray[1].length ; ++f) {
if(meatarray[1][m] + fruitarray[1][f] <= maxPrice) {
for(int v = 0 ; v < vegetablearray[1].length ; ++v) {
if(meatarray[1][m] + fruitarray[1][f] + vegetablearray[1][v] <= maxPrice) {
for(int p = 0 ; v < pastaarray[1].length ; ++p) {
if(meatarray[1][m] + fruitarray[1][f] + vegetablearray[1][v]
+ pastaarray[1][p] <= maxPrice) {
System.out.println(meatarray[0][m] + " " + fruitarray[0][f] + " "
+ vegetablearray[0][v] + " " + pastaarray[0][p]);
}
}
}
}
}
}
}
}