Когда вы суммируете правую часть массива, вы начинаете с элемента равновесия:
давайте предположим, n = 2
и ваш ввод [1, 4, 2, 5, 0]
while(n<=5) {
for(i=n;i<5;n++)
j+=arr[i]; //sum of right side arr from n-th element
}
Суммирование правой части массива начнется с i = 2
, поэтому оно будет 2 + 5 + 0
, а не 5 + 0
.
Быстрый и простой способ устранения проблем, подобных этой, состоит в том, чтобы напечатать, что делает каждый шаг (в вашем случае, какой индекс он выбирает для суммирования), чтобы вы могли быстро диагностировать, если вы делаете что-то, чего не должны делать .
Кроме того, ваш текущий метод не самый оптимальный подход, но это хорошее место для начала. Я призываю вас попробовать другой подход после того, как это решение заработает.