18 lines
308 B
PL/PgSQL
18 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;
|