Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
14
Task/Fibonacci-sequence/Icon/fibonacci-sequence-1.icon
Normal file
14
Task/Fibonacci-sequence/Icon/fibonacci-sequence-1.icon
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
procedure main(args)
|
||||
write(fib(integer(!args) | 1000)
|
||||
end
|
||||
|
||||
procedure fib(n)
|
||||
static fCache
|
||||
initial {
|
||||
fCache := table()
|
||||
fCache[0] := 0
|
||||
fCache[1] := 1
|
||||
}
|
||||
/fCache[n] := fib(n-1) + fib(n-2)
|
||||
return fCache[n]
|
||||
end
|
||||
17
Task/Fibonacci-sequence/Icon/fibonacci-sequence-2.icon
Normal file
17
Task/Fibonacci-sequence/Icon/fibonacci-sequence-2.icon
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
procedure main(args)
|
||||
write(fib(integer(!args) | 1000000))
|
||||
end
|
||||
|
||||
procedure fib(n)
|
||||
return fibMat(n)[1]
|
||||
end
|
||||
|
||||
procedure fibMat(n)
|
||||
if n <= 0 then return [0,0]
|
||||
if n = 1 then return [1,0]
|
||||
fp := fibMat(n/2)
|
||||
c := fp[1]*fp[1] + fp[2]*fp[2]
|
||||
d := fp[1]*(fp[1]+2*fp[2])
|
||||
if n%2 = 1 then return [c+d, d]
|
||||
else return [d, c]
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue