【发布时间】:2020-02-22 16:18:14
【问题描述】:
我在我的第一个 java 类。我们才刚刚开始使用数组。我得到了 9 个数字:45000,30000,150000,200000,175000,250000,195000,225000,300000。并且需要编写一个java程序,将列表分解为3组3个数字。每组的总和必须大于 500,000。
我的第一个想法是打乱数组并测试总和索引 0,1,2 >500000 ... 总和索引 3,4,5 >500000 ...总和索引 6,7,8 >500000?并循环它直到满足条件。 “洗牌”数组的想法使我研究了 ArrayList 和 Collections.shuffle() 方法。
我认为我的 ArrayList 代码是正确的。程序编译。而且我的 while 条件似乎是正确的,但我得到的输出少于 500000。
任何见解将不胜感激。
public static void main(String[] args) { // TODO 自动生成的方法存根
ArrayList<Integer> productPrices = new ArrayList<Integer>();
productPrices.add(45000);
productPrices.add(30000);
productPrices.add(150000);
productPrices.add(200000);
productPrices.add(175000);
productPrices.add(250000);
productPrices.add(195000);
productPrices.add(225000);
productPrices.add(300000);
List<Integer> prices = Arrays.asList(45000,30000,150000,200000,175000,250000,195000,225000,300000);
int salesRep2 = 0;
int salesRep3 = 0;
int salesRep4 = 0;
do
{
Collections.shuffle(prices);
salesRep2 = prices.get(0) + prices.get(1) + prices.get(2);
salesRep3 = prices.get(3) + prices.get(4) + prices.get(5);
salesRep4 = prices.get(6) + prices.get(7) + prices.get(8);
}while((salesRep2 < 500000) && (salesRep3 < 5000000) && (salesRep4 < 500000));
System.out.println(salesRep2);
System.out.println(salesRep3);
System.out.println(salesRep4);
}
}
【问题讨论】:
-
如果您希望它们都至少为 500k,则应在条件中使用
||而不是&&。 -
是大于500K还是大于等于500K?你说大于文本而不是代码。
标签: java arrays loops arraylist do-while