Изучение нескольких методов вычисления суммы целых чисел в PL/SQL

В этой статье блога мы углубимся в различные методы вычисления суммы целых чисел в PL/SQL, процедурном языке, используемом для программирования баз данных в Oracle. Мы предоставим примеры кода для каждого метода, что позволит вам выбрать подход, который наилучшим образом соответствует вашим требованиям. Давайте начнем!

Метод 1: использование цикла
Один из самых простых способов вычисления суммы целых чисел — использование цикла. Вот пример:

DECLARE
   n NUMBER := &input_number;
   i NUMBER := 1;
   sum NUMBER := 0;
BEGIN
   WHILE i <= n LOOP
      sum := sum + i;
      i := i + 1;
   END LOOP;
   DBMS_OUTPUT.PUT_LINE('The sum of integers from 1 to ' || n || ' is: ' || sum);
END;
/

Метод 2: использование функции SUM
PL/SQL предоставляет функцию SUM для вычисления суммы набора значений. Вот пример:

DECLARE
   n NUMBER := &input_number;
   sum NUMBER;
BEGIN
   SELECT SUM(level) INTO sum FROM DUAL CONNECT BY LEVEL <= n;
   DBMS_OUTPUT.PUT_LINE('The sum of integers from 1 to ' || n || ' is: ' || sum);
END;
/

Метод 3: использование формулы Гаусса
Если вам нужно вычислить сумму последовательного диапазона целых чисел, вы можете использовать формулу Гаусса. Вот пример:

DECLARE
   n NUMBER := &input_number;
   sum NUMBER;
BEGIN
   sum := (n * (n + 1)) / 2;
   DBMS_OUTPUT.PUT_LINE('The sum of integers from 1 to ' || n || ' is: ' || sum);
END;
/

Метод 4: использование рекурсивных подпрограмм
В PL/SQL вы можете использовать рекурсивные подпрограммы для вычисления суммы целых чисел. Вот пример:

DECLARE
   FUNCTION calculate_sum(n NUMBER) RETURN NUMBER IS
   BEGIN
      IF n = 0 THEN
         RETURN 0;
      ELSE
         RETURN n + calculate_sum(n - 1);
      END IF;
   END;
   n NUMBER := &input_number;
   sum NUMBER;
BEGIN
   sum := calculate_sum(n);
   DBMS_OUTPUT.PUT_LINE('The sum of integers from 1 to ' || n || ' is: ' || sum);
END;
/