- Вы не инициализируете
sum
.Инициализируйте его с помощью 0
. - . Вы не должны добавлять
n
на каждом шаге, но j
.
Конечно, это исправляет ваш текущий код,Существуют лучшие подходы к решению проблемы, о которых уже упоминали другие.
Редактировать :
Просто для удовольствия, вот формула, которая позволяет решить эту проблему вO(1)
:
Ваша сумма равна n*(n + 1)*(2*n + 1) / 12 + n*(n + 1) / 4
.
Это получается, записывая ее как сумму и используя тот факт, что сумма первых n
последовательных квадратов равнаn(n + 1)(2n + 1) / 6
, а сумма первых n
положительных значений составляет n(n + 1)/2
.+1, если вы можете найти более хорошую форму формулы.