34 lines
502 B
Text
34 lines
502 B
Text
|
|
' Fibonacci sequence
|
||
|
|
|
||
|
|
BEGIN DEF
|
||
|
|
pointer dword FibPtr~ ' Why "pointer dword" must be in lower case?
|
||
|
|
SUB CalcFib(N%, FibPtr~)
|
||
|
|
|
||
|
|
BEGIN CODE
|
||
|
|
PRINT "Enter n for fib(n): "
|
||
|
|
INPUT SN$
|
||
|
|
N% = VAL(SN$)
|
||
|
|
PRINT "\n"
|
||
|
|
CALL CalcFib(N%, VARPTR(Fib&))
|
||
|
|
PRINT Fib& + "\n"
|
||
|
|
END
|
||
|
|
|
||
|
|
SUB CalcFib(N%, FibPtr~)
|
||
|
|
IF N% = 0 THEN
|
||
|
|
Fib& = 0
|
||
|
|
ELSE
|
||
|
|
IF N% = 1 THEN
|
||
|
|
Fib& = 1
|
||
|
|
ELSE
|
||
|
|
Prev& = 0
|
||
|
|
Fib& = 1
|
||
|
|
FOR I% = 2 TO N%
|
||
|
|
T& = Fib&
|
||
|
|
Fib& = Prev& + Fib&
|
||
|
|
Prev& = T&
|
||
|
|
NEXT
|
||
|
|
ENDIF
|
||
|
|
ENDIF
|
||
|
|
[FibPtr~] = Fib&
|
||
|
|
END SUB
|