public static void main(String[] args){
int[] arr = {2, 1, -7, 16, -2, 11};
for (int i = 5; i >= 1; i--){
arr[i] = arr[i] + 2*arr[i – 1];
}
}
Результат этого кода равен: {2, 5, -5, 2, 30, 7} Я просто не понимаю, как на самом деле работает формула для получения этих результатов. Код начинается с позиции 5 и проверяет каждое число в массиве в обратном порядке, но какова фактическая математика за этим? Я попытался заменить 5 на i, но результаты, которые я получаю, отличаются, когда я пытаюсь решить это самостоятельно. Кто-нибудь может мне здесь помочь?
Изучите основы из книги, прежде чем размещать на переполнение стека.
Я предлагаю вам пройтись по коду в вашем отладчике, чтобы увидеть, что делает каждая строка кода.




Данный массив = {2, 1, -7, 16, -2, 11};
Итерация вашего кода:
i=5:
array[5] = array[5] + 2*array[4]
array[5] = 11 + (2*-2)
array[5] = 11 - 4 = 7
i=4:
array[4] = array[4] + 2*array[3]
array[4] = -2 + 32 = 30
так же все остальные следуют
Я так понимаю, что вы новичок. Кстати, это Java, а не Javascript. Оба разные. Я рекомендую вам изучить массивы или использовать отладчик в вашей IDE, чтобы вы могли видеть, как работает код.
ты понимаешь, как работает массив?