18 lines
497 B
AutoHotkey
18 lines
497 B
AutoHotkey
/*
|
|
Important note: the recursive version would be very slow
|
|
without a global or static array. The iterative version
|
|
handles also negative arguments properly.
|
|
*/
|
|
|
|
FibR(n) { ; n-th Fibonacci number (n>=0, recursive with static array Fibo)
|
|
Static
|
|
Return n<2 ? n : Fibo%n% ? Fibo%n% : Fibo%n% := FibR(n-1)+FibR(n-2)
|
|
}
|
|
|
|
Fib(n) { ; n-th Fibonacci number (n < 0 OK, iterative)
|
|
a := 0, b := 1
|
|
Loop % abs(n)-1
|
|
c := b, b += a, a := c
|
|
Return n=0 ? 0 : n>0 || n&1 ? b : -b
|
|
}
|