Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
13
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-1.alg
Normal file
13
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-1.alg
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
PROC analytic fibonacci = (LONG INT n)LONG INT:(
|
||||
LONG REAL sqrt 5 = long sqrt(5);
|
||||
LONG REAL p = (1 + sqrt 5) / 2;
|
||||
LONG REAL q = 1/p;
|
||||
ROUND( (p**n + q**n) / sqrt 5 )
|
||||
);
|
||||
|
||||
FOR i FROM 1 TO 30 WHILE
|
||||
print(whole(analytic fibonacci(i),0));
|
||||
# WHILE # i /= 30 DO
|
||||
print(", ")
|
||||
OD;
|
||||
print(new line)
|
||||
17
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-2.alg
Normal file
17
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-2.alg
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
PROC iterative fibonacci = (INT n)INT:
|
||||
CASE n+1 IN
|
||||
0, 1, 1, 2, 3, 5
|
||||
OUT
|
||||
INT even:=3, odd:=5;
|
||||
FOR i FROM odd+1 TO n DO
|
||||
(ODD i|odd|even) := odd + even
|
||||
OD;
|
||||
(ODD n|odd|even)
|
||||
ESAC;
|
||||
|
||||
FOR i FROM 0 TO 30 WHILE
|
||||
print(whole(iterative fibonacci(i),0));
|
||||
# WHILE # i /= 30 DO
|
||||
print(", ")
|
||||
OD;
|
||||
print(new line)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
PROC recursive fibonacci = (INT n)INT:
|
||||
( n < 2 | n | fib(n-1) + fib(n-2));
|
||||
18
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-4.alg
Normal file
18
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-4.alg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
MODE YIELDINT = PROC(INT)VOID;
|
||||
|
||||
PROC gen fibonacci = (INT n, YIELDINT yield)VOID: (
|
||||
INT even:=0, odd:=1;
|
||||
yield(even);
|
||||
yield(odd);
|
||||
FOR i FROM odd+1 TO n DO
|
||||
yield( (ODD i|odd|even) := odd + even )
|
||||
OD
|
||||
);
|
||||
|
||||
main:(
|
||||
# FOR INT n IN # gen fibonacci(30, # ) DO ( #
|
||||
## (INT n)VOID:(
|
||||
print((" ",whole(n,0)))
|
||||
# OD # ));
|
||||
print(new line)
|
||||
)
|
||||
30
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-5.alg
Normal file
30
Task/Fibonacci-sequence/ALGOL-68/fibonacci-sequence-5.alg
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
[]INT const fibonacci = []INT( -1836311903, 1134903170,
|
||||
-701408733, 433494437, -267914296, 165580141, -102334155,
|
||||
63245986, -39088169, 24157817, -14930352, 9227465, -5702887,
|
||||
3524578, -2178309, 1346269, -832040, 514229, -317811, 196418,
|
||||
-121393, 75025, -46368, 28657, -17711, 10946, -6765, 4181,
|
||||
-2584, 1597, -987, 610, -377, 233, -144, 89, -55, 34, -21, 13,
|
||||
-8, 5, -3, 2, -1, 1, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
|
||||
144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711,
|
||||
28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040,
|
||||
1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817,
|
||||
39088169, 63245986, 102334155, 165580141, 267914296, 433494437,
|
||||
701408733, 1134903170, 1836311903
|
||||
)[@-46];
|
||||
|
||||
PROC VOID value error := stop;
|
||||
|
||||
PROC lookup fibonacci = (INT i)INT: (
|
||||
IF LWB const fibonacci <= i AND i<= UPB const fibonacci THEN
|
||||
const fibonacci[i]
|
||||
ELSE
|
||||
value error; SKIP
|
||||
FI
|
||||
);
|
||||
|
||||
FOR i FROM 0 TO 30 WHILE
|
||||
print(whole(lookup fibonacci(i),0));
|
||||
# WHILE # i /= 30 DO
|
||||
print(", ")
|
||||
OD;
|
||||
print(new line)
|
||||
Loading…
Add table
Add a link
Reference in a new issue