Как я могу уменьшить количество строк кода?
public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { int[] costsarr = {210, 375, 181, 600, 750, 360, 13125, 58, 7553, 5509, 2708, 2934}; System.out.println("Cost per day"); for (int y = 0; y < costsarr.length; y++) { int sum = 0; if (y == 0) { sum = sum + costsarr[0]; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 1) { sum = sum + costsarr[0] + costsarr[1] * 2; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 2) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 3) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 4) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 5) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 6) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 7) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 8) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8 + costsarr[8] * 9; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 9) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8 + costsarr[8] * 9 + costsarr[9] * 10; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 10) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8 + costsarr[8] * 9 + costsarr[9] * 10 + costsarr[10] * 11; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 11) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8 + costsarr[8] * 9 + costsarr[9] * 10 + costsarr[10] * 11 + costsarr[11] * 12; System.out.println("Day " + (y + 1) + ": $" + sum); } if (y == 12) { sum = sum + costsarr[0] + costsarr[1] * 2 + costsarr[2] * 3 + costsarr[3] * 4 + costsarr[4] * 5 + costsarr[5] * 6 + costsarr[6] * 7 + costsarr[7] * 8 + costsarr[8] * 9 + costsarr[9] * 10 + costsarr[10] * 11 + costsarr[11] * 12 + costsarr[12] * 13; System.out.println("Day " + (y + 1) + ": $" + sum); } } } }
Что я уже пробовал:
Это делается для того, чтобы рассчитать сумму, потраченную каждый день за 12 дней Рождества. Это самое лучшее, что я мог бы сократить, и не знаю, куда еще идти отсюда.
CHill60
Зачем укорачивать? Количество строк кода? Сколько времени требуется для выполнения? Сколько памяти он потребляет?
Подсказка-попробуйте "переключиться" и попробуйте ввести переменную для вывода
PIEBALDconsult
Замените каждую новую строку пробелом. Сделано.
Dave Kreskowiak
Посмотрите на эту кучу утверждений if и заметьте в ней закономерность. После беглого взгляда вы можете удалить все эти операторы if и заменить весь стек другим циклом внутри первого.
Member 12892727
Большое вам спасибо! кажется, я понял :)