43 lines
632 B
Text
43 lines
632 B
Text
' Bell numbers
|
|
|
|
BEGIN DEF
|
|
SUB PrintStr(S$, Width%)
|
|
%MaxN = 14
|
|
DIM A&[%MaxN]
|
|
|
|
BEGIN CODE
|
|
N% = 0
|
|
FOR I% = 0 TO %MaxN -1
|
|
A&[I%] = 0
|
|
NEXT
|
|
A&[0] = 1
|
|
PRINT "B("
|
|
CALL PrintStr(STR(N%), 2)
|
|
PRINT ") = "
|
|
CALL PrintStr(STR(A&[0]), 9)
|
|
PRINT "\n"
|
|
WHILE N% < %MaxN
|
|
A&[N%] = A&[0]
|
|
J% = N%
|
|
WHILE J% >= 1
|
|
JMin1% = J% - 1
|
|
A&[JMin1%] = A&[JMin1%] + A&[J%]
|
|
J% = J% - 1
|
|
WEND
|
|
N% = N% + 1
|
|
PRINT "B("
|
|
CALL PrintStr(STR(N%), 2)
|
|
PRINT ") = "
|
|
CALL PrintStr(STR(A&[0]), 9)
|
|
PRINT "\n"
|
|
WEND
|
|
END
|
|
|
|
SUB PrintStr(S$, Width%)
|
|
IF LEN(S$) > Width% THEN
|
|
PRINT S$
|
|
ELSE
|
|
S$ = SPACE(Width%) + S$
|
|
PRINT RIGHT(S$, Width%)
|
|
ENDIF
|
|
END SUB
|