Оптимизация программы по быстродействию - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите плиз, очень нужна помощь, заранее спасибо! Что убрать, что изменить?!
//Вычислить выражение s=1^2+3^2+5^2 +...+n^2, n - нечетное число
var
  i, n: integer;
  s: real;
 
begin
  readln(n);
  s := 0;
  for i := 1 to n do
    if i mod 2 <> 0 then 
      s := s + i * i;
  writeln('s=', s);
end.

Решение задачи: «Оптимизация программы по быстродействию»

textual
Листинг программы
var n: longint;
begin
  readln(n);
  n := (n + 1) shr 1; //n := (n + 1) div 2;
  writeln('S = ', n * (4 * n * n - 1) div 3)
end.

Объяснение кода листинга программы

  1. Переменная n инициализируется значением, введенным пользователем с помощью функции readln.
  2. Выполняется операция (n + 1) shr 1, где оператор shr выполняет целочисленное деление с остатком. Результат этой операции присваивается переменной n. Можно было бы также записать n := (n + 1) div 2, но использование оператора shr 1 более короткое и понятное решение.
  3. Выводится значение переменной n.
  4. Код завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы