langs a-z
This commit is contained in:
parent
db842d013d
commit
d066446780
11389 changed files with 98361 additions and 1020 deletions
|
|
@ -0,0 +1,3 @@
|
|||
Macro Fibonacci (n)
|
||||
Int((Pow(((1+Sqr(5))/2),n)-Pow(((1-Sqr(5))/2),n))/Sqr(5))
|
||||
EndMacro
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Procedure FibonacciReq(n)
|
||||
If n<2
|
||||
ProcedureReturn n
|
||||
Else
|
||||
ProcedureReturn FibonacciReq(n-1)+FibonacciReq(n-2)
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Procedure Fibonacci(n)
|
||||
Static NewMap Fib.i()
|
||||
Protected FirstRecursion
|
||||
|
||||
If MapSize(Fib())= 0 ; Init the hash table the first run
|
||||
Fib("0")=0: Fib("1")=1
|
||||
FirstRecursion = #True
|
||||
EndIf
|
||||
|
||||
If n >= 2
|
||||
Protected.s s=Str(n)
|
||||
If Not FindMapElement(Fib(),s) ; Calculate only needed parts
|
||||
Fib(s)= Fibonacci(n-1)+Fibonacci(n-2)
|
||||
EndIf
|
||||
n = Fib(s)
|
||||
EndIf
|
||||
If FirstRecursion ; Free the memory when finalizing the first call
|
||||
ClearMap(Fib())
|
||||
EndIf
|
||||
ProcedureReturn n
|
||||
EndProcedure
|
||||
Loading…
Add table
Add a link
Reference in a new issue