Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
48
Task/Fibonacci-sequence/PowerBASIC/fibonacci-sequence.basic
Normal file
48
Task/Fibonacci-sequence/PowerBASIC/fibonacci-sequence.basic
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
FUNCTION fibonacci (n AS LONG) AS QUAD
|
||||
DIM u AS LONG, a AS LONG, L0 AS LONG, outP AS QUAD
|
||||
STATIC fibNum() AS QUAD
|
||||
|
||||
u = UBOUND(fibNum)
|
||||
a = ABS(n)
|
||||
|
||||
IF u < 1 THEN
|
||||
REDIM fibNum(1)
|
||||
fibNum(1) = 1
|
||||
u = 1
|
||||
END IF
|
||||
|
||||
SELECT CASE a
|
||||
CASE 0 TO 92
|
||||
IF a > u THEN
|
||||
REDIM PRESERVE fibNum(a)
|
||||
FOR L0 = u + 1 TO a
|
||||
fibNum(L0) = fibNum(L0 - 1) + fibNum(L0 - 2)
|
||||
IF 88 = L0 THEN fibNum(88) = fibNum(88) + 1
|
||||
NEXT
|
||||
END IF
|
||||
IF n < 0 THEN
|
||||
fibonacci = fibNum(a) * ((-1)^(a+1))
|
||||
ELSE
|
||||
fibonacci = fibNum(a)
|
||||
END IF
|
||||
CASE ELSE
|
||||
'Even without the above-mentioned bug, we're still limited to
|
||||
'F(+/-92), due to data type limits. (F(93) = &hA94F AD42 221F 2702)
|
||||
ERROR 6
|
||||
END SELECT
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION PBMAIN () AS LONG
|
||||
DIM n AS LONG
|
||||
#IF NOT %DEF(%PB_CC32)
|
||||
OPEN "out.txt" FOR OUTPUT AS 1
|
||||
#ENDIF
|
||||
FOR n = -92 TO 92
|
||||
#IF %DEF(%PB_CC32)
|
||||
PRINT STR$(n); ": "; FORMAT$(fibonacci(n), "#")
|
||||
#ELSE
|
||||
PRINT #1, STR$(n) & ": " & FORMAT$(fibonacci(n), "#")
|
||||
#ENDIF
|
||||
NEXT
|
||||
CLOSE
|
||||
END FUNCTION
|
||||
Loading…
Add table
Add a link
Reference in a new issue