Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,8 @@
|
|||
CREATE OR REPLACE FUNCTION fib(n INTEGER) RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
IF (n < 2) THEN
|
||||
RETURN n;
|
||||
END IF;
|
||||
RETURN fib(n - 1) + fib(n - 2);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
CREATE OR REPLACE FUNCTION fibFormula(n INTEGER) RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
RETURN round(pow((pow(5, .5) + 1) / 2, n) / pow(5, .5));
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
17
Task/Fibonacci-sequence/PL-pgSQL/fibonacci-sequence-3.sql
Normal file
17
Task/Fibonacci-sequence/PL-pgSQL/fibonacci-sequence-3.sql
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
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;
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
CREATE OR REPLACE FUNCTION fibTailRecursive(n INTEGER, prevFib INTEGER DEFAULT 0, fib INTEGER DEFAULT 1)
|
||||
RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
IF (n = 0) THEN
|
||||
RETURN prevFib;
|
||||
END IF;
|
||||
RETURN fibTailRecursive(n - 1, fib, prevFib + fib);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
Loading…
Add table
Add a link
Reference in a new issue