RosettaCodeData/Task/Fibonacci-sequence/PL-pgSQL/fibonacci-sequence-3.sql
2023-07-01 13:44:08 -04:00

17 lines
308 B
PL/PgSQL

CREATE OR REPLACE FUNCTION fibLinear(n INTEGER) RETURNS INTEGER AS $$
DECLARE
prevFib INTEGER := 0;
fib INTEGER := 1;
BEGIN
IF (n < 2) THEN
RETURN n;
END IF;
WHILE n > 1 LOOP
SELECT fib, prevFib + fib INTO prevFib, fib;
n := n - 1;
END LOOP;
RETURN fib;
END;
$$ LANGUAGE plpgsql;