1 回答

TA貢獻1835條經驗 獲得超7個贊
一個不錯的策略的提示。如果每行的總和必須以美元為單位,這是有效的。只要知道double你可能會失去一些精確度。
編輯以符合 OP 先決條件(僅ArrayList)。
try (final Scanner data = new Scanner(file)) {
final int lines = data.nextInt();
final Collection<Double> totalPerLine = new ArrayList<>(lines);
for (int i = 0; i < lines; i++) {
double sum = 0;
for (int j = 0; j < 13; j++) {
final int value = data.nextInt();
sum += getDollars(j, value);
}
totalPerLine.add(sum);
System.out.println("Line " + i + ": $" + sum);
}
}
private static double getDollars(
final int type,
final int value) {
switch (type) {
case 0: // Penny
return value / 100D;
case 1: // Nickle
return value / 20D;
case 2: // Dime
return value / 10D;
case 3: // Quarter
return value / 4D;
case 4: // Half
return value / 2D;
case 5: // Dollar coin
case 6: // Dollar bill
return value;
case 7: // Two dollars bill
return value * 2D;
case 8: // Five dollars bill
return value * 5D;
case 9: // Ten dollars bill
return value * 10D;
case 10: // Twenty dollars bill
return value * 20D;
case 11: // Fifty dollars bill
return value * 50D;
case 12: // A hundred dollars bill
return value * 100D;
default:
return 0;
}
}
添加回答
舉報