Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
8
Task/Fibonacci-sequence/Chapel/fibonacci-sequence.chapel
Normal file
8
Task/Fibonacci-sequence/Chapel/fibonacci-sequence.chapel
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
iter fib() {
|
||||
var a = 0, b = 1;
|
||||
|
||||
while true {
|
||||
yield a;
|
||||
(a, b) = (b, b + a);
|
||||
}
|
||||
}
|
||||
50
Task/Fibonacci-sequence/Eiffel/fibonacci-sequence.e
Normal file
50
Task/Fibonacci-sequence/Eiffel/fibonacci-sequence.e
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
class
|
||||
APPLICATION
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature
|
||||
|
||||
fibonacci (n: INTEGER): INTEGER
|
||||
require
|
||||
non_negative: n >= 0
|
||||
local
|
||||
i, n2, n1, tmp: INTEGER
|
||||
do
|
||||
n2 := 0
|
||||
n1 := 1
|
||||
from
|
||||
i := 1
|
||||
until
|
||||
i >= n
|
||||
loop
|
||||
tmp := n1
|
||||
n1 := n2 + n1
|
||||
n2 := tmp
|
||||
i := i + 1
|
||||
end
|
||||
Result := n1
|
||||
if n = 0 then
|
||||
Result := 0
|
||||
end
|
||||
end
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make
|
||||
-- Run application.
|
||||
do
|
||||
print (fibonacci (0))
|
||||
print (" ")
|
||||
print (fibonacci (1))
|
||||
print (" ")
|
||||
print (fibonacci (2))
|
||||
print (" ")
|
||||
print (fibonacci (3))
|
||||
print (" ")
|
||||
print (fibonacci (4))
|
||||
print ("%N")
|
||||
end
|
||||
|
||||
end
|
||||
1
Task/Fibonacci-sequence/Julia/fibonacci-sequence-1.julia
Normal file
1
Task/Fibonacci-sequence/Julia/fibonacci-sequence-1.julia
Normal file
|
|
@ -0,0 +1 @@
|
|||
fib(n) = n < 2 ? n : fib(n-1) + fib(n-2)
|
||||
5
Task/Fibonacci-sequence/Julia/fibonacci-sequence-2.julia
Normal file
5
Task/Fibonacci-sequence/Julia/fibonacci-sequence-2.julia
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
function fib(n)
|
||||
x,y = (0,1)
|
||||
for i = 1:n x,y = (y, x+y) end
|
||||
x
|
||||
end
|
||||
1
Task/Fibonacci-sequence/Julia/fibonacci-sequence-3.julia
Normal file
1
Task/Fibonacci-sequence/Julia/fibonacci-sequence-3.julia
Normal file
|
|
@ -0,0 +1 @@
|
|||
fib(n) = ([1 1 ; 1 0]^n)[1,2]
|
||||
7
Task/Fibonacci-sequence/Prolog/fibonacci-sequence-10.pro
Normal file
7
Task/Fibonacci-sequence/Prolog/fibonacci-sequence-10.pro
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
% Fibonacci sequence generator
|
||||
fib(C, [P,S], C, N) :- N is P + S.
|
||||
fib(C, [P,S], Cv, V) :- succ(C, Cn), N is P + S, !, fib(Cn, [S,N], Cv, V).
|
||||
|
||||
fib(0, 0).
|
||||
fib(1, 1).
|
||||
fib(C, N) :- fib(2, [0,1], C, N). % Generate from 3rd sequence on
|
||||
|
|
@ -1,8 +1,4 @@
|
|||
fib(X) :-
|
||||
X=[0,1|Z],
|
||||
ffib(Z,X).
|
||||
ffib(Z,X) :-
|
||||
X=[A|Y],
|
||||
Y=[B|_],
|
||||
N is A+B,
|
||||
freeze(Z, (Z=[N|W],ffib(W,Y)) ).
|
||||
fib([0,1|X]) :-
|
||||
ffib(0,1,X).
|
||||
ffib(A,B,X) :-
|
||||
freeze(X, (C is A+B, X=[C|Y], ffib(B,C,Y)) ).
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
% Fibonacci sequence generator
|
||||
fib(C, [P,S], C, N) :- N is P + S.
|
||||
fib(C, [P,S], Cv, V) :- succ(C, Cn), N is P + S, !, fib(Cn, [S,N], Cv, V).
|
||||
take( 0, Next, Z-Z, Next).
|
||||
take( N, Next, [A|B]-Z, NZ):- N>0, !, next( Next, A, Next1),
|
||||
N1 is N-1,
|
||||
take( N1, Next1, B-Z, NZ).
|
||||
|
||||
fib(0, 0).
|
||||
fib(1, 1).
|
||||
fib(C, N) :- fib(2, [0,1], C, N). % Generate from 3rd sequence on
|
||||
next( fib(A,B), A, fib(B,C)):- C is A+B.
|
||||
|
||||
%% usage: ?- take(15, fib(0,1), _X-[], G), writeln(_X).
|
||||
%% [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
|
||||
%% G = fib(610, 987)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ fn main() {
|
|||
|
||||
}
|
||||
|
||||
for int::range(0,20) |n| {
|
||||
io::println(fmt!("%?", fib(n)))
|
||||
for n in range(0,20) {
|
||||
println(fmt!("%d", fib(n)))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue