Почему при складывании большого количества чисел, выводится отрицательное число?
Рассматривается множество целых чисел принадлежащих числовому отрезку от 4221 до 17523 которые в восьмеричной СС оканчиваются на 6 и в четверичной на 2. Надо найти сумму таких чисел и минимальное из них.
Написал код на паскале
var i, min, sum: integer;
begin
sum := 0;
min := 20000;
for i := 4221 to 17523 do begin
if(i mod 8 = 6) and (i mod 4 = 2) then
begin
sum := sum + i;
if i < min then
min := i;
end;
end;
writeln(sum, ' ', min);
end.
В итоге на экран в переменной sum выводится отрицательное число. В чем моя ошибка?
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
Диапазон значений integer в Паскале - -32768..32767.
А сумма получается 36160272, поэтому и получается отрицательным.
Используйте тип longint.