Оптимизация программы по быстродействию - 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.
Объяснение кода листинга программы
- Переменная n инициализируется значением, введенным пользователем с помощью функции readln.
- Выполняется операция (n + 1) shr 1, где оператор shr выполняет целочисленное деление с остатком. Результат этой операции присваивается переменной n. Можно было бы также записать n := (n + 1) div 2, но использование оператора shr 1 более короткое и понятное решение.
- Выводится значение переменной n.
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д