Причина, по которой вы получаете этот странный результат, заключается в том, что вы добавляете эти числа в i вместо выделенного сборщика.
int collector = 0;
for (int i = 0; i <= 100; i++) {
collector += i;
println(collector);
}
Если вы хотите распечатать сумму только один раз, переместите println (сборщик)) выражение вне цикла.
Существует также математическая формула для непосредственного вычисления суммы первых n чисел
Sum(1, n) = n * (n+1) / 2
В обработке:
int Sum(int n){
return n * (n + 1) / 2;
}
формула работает , потому что числа от 1 до N можно переставить и добавить следующим образом:
(1 + N) + (2 + N-1) + (3 + N-2) + . . . . + (N + N/2+1) = total
для N = 100:
(1 + 100) + (2 + 99) + (3 + 98) + . . . . + (50 + 51) = 5050
101 + 101 + 101 + . . . . + 101 = 5050