Вопрос задан 20.10.2020 в 11:00. Предмет Информатика. Спрашивает Барзенкова Ксения.

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.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Семенкова Елизавета.

Ваши ошибки:

1) Объявление текстовых переменных и неиспользование их.

2) Ненужный тип longint, зачем такой большой тип?

Типа Integer вполне достаточно (-32 768 … 32 767).

3) Объявление абсолютно ненужной переменной z.

4) Главная ошибка - это непонимание задания, и соответственно неправильно построенный алгоритм.


Попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. Использован метод Гаусса, можно было и арифм. прогрессию.


var

  n: integer;

  text: text;


begin

  assign(text, 'input.txt'); reset(text);

  readln(text, n); close(text);

  

  if (n > 10000) then exit;

  

  assign(text, 'output.txt'); rewrite(text);

  if n < 0 then Writeln(text, -((1 + abs(n)) * (abs(n) / 2) - 1))

  else Writeln(text, (1 + n) * (n / 2));

  close(text);

end.


0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос