PASCAL
Требуется посчитать сумму целых чисел, расположенных между числами 1 и N включительно.
Входные данные
В единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 10^4.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел, расположенных между 1 и N включительно.
МОЁ РЕШЕНИЕ:
var n, i, s, z: longint;
begin
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
z:=0;
s:=0;
read(n); begin
if n<=z then
exit;
end;
for i := 1 to n do s+=i;
write(s);
end.
Но код не принимает система, что может быть не так? PS://
Но сложность этой задачи не в вычислении этой суммы и приведенный выше алгоритм не проходит на третьем тесте! Оказывается, здесь очень внимательно нужно прочитать условия задачи, особенно ограничения на число N. Дело в том, что это число может быть отрицательным!!! Учитывая это попробуйте самостоятельно доработать и реализовать верный алгоритм решения этой задачи. UPD: забыл условие поставить,что n не должно превышать 10^4UPD2:исправил ошибки, учёл что n<10000, но все равно "задача решена неверно" КОД:var n, i, s, z: longint; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); z:=0; s:=0; read(n); begin if n<=z then exit; end; if n<=10000 then for i := 1 to n do s+=i else exit; write(s); end.

2 Окт 2019 в 15:43
695 +1
0
Ответы
1

Измените проверку на отрицательное значение числа N. Вот исправленный код:

var
n, i, s: longint;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
s := 0;
read(n);
if n < 0 then
begin
for i := n to 1 do
s := s + i;
end
else
begin
for i := 1 to n do
s := s + i;
end;
write(s);
close(input);
close(output);
end.

Этот код должен правильно обрабатывать отрицательные значения N и проходить все тесты.

19 Апр 2024 в 18:43
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир