RosettaCodeData/Task/Man-or-boy-test/BBC-BASIC/man-or-boy-test.basic
2023-07-01 13:44:08 -04:00

25 lines
619 B
Text

HIMEM = PAGE + 200000000 : REM Increase recursion depth
FOR k% = 0 TO 20
PRINT FNA(k%, ^FN1(), ^FN_1(), ^FN_1(), ^FN1(), ^FN0())
NEXT
END
DEF FNA(k%, x1%, x2%, x3%, x4%, x5%)
IF k% <= 0 THEN = FN(x4%)(x4%) + FN(x5%)(x5%)
LOCAL b{}
DIM b{fn%, k%, x1%, x2%, x3%, x4%, x5%}
b.fn% = !^FNB()
b.k% = k%
b.x1% = x1%
b.x2% = x2%
b.x3% = x3%
b.x4% = x4%
b.x5% = x5%
DEF FNB(!(^b{}+4))
b.k% -= 1
= FNA(b.k%, b{}, b.x1%, b.x2%, b.x3%, b.x4%)
DEF FN0(d%) = 0
DEF FN1(d%) = 1
DEF FN_1(d%) = -1