42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
100 LET ROWS = 15
|
|
110 LET M$ = CHR$ (13)
|
|
120 LET N = ROWS: GOSUB 500"BELLTRIANGLE"
|
|
130 PRINT "FIRST FIFTEEN BELL NUMBERS:"
|
|
140 FOR I = 1 TO ROWS
|
|
150 LET BR = I:BC = 0: GOSUB 350"GETBELL"
|
|
160 HTAB T * 13 + 1
|
|
170 PRINT RIGHT$ (" " + STR$ (I),2)": "BV; MID$ (M$,1,T = 2);
|
|
180 LET T = T + 1 - (T = 2) * 3
|
|
190 NEXT I
|
|
200 PRINT M$"THE FIRST TEN ROWS OF BELL'S TRIANGLE:";
|
|
210 FOR I = 1 TO 10
|
|
220 LET BR = I:BC = 0: GOSUB 350"GETBELL"
|
|
230 PRINT M$BV;
|
|
240 FOR J = 1 TO I - 1
|
|
250 IF I - 1 > = J THEN BR = I:BC = J: GOSUB 350"GETBELL": PRINT " "BV;
|
|
260 NEXT J,I
|
|
270 END
|
|
|
|
300 LET BI = BR * (BR - 1) / 2 + BC
|
|
310 RETURN
|
|
|
|
350 GOSUB 300"BELLINDEX"
|
|
360 LET BV = TRI(BI)
|
|
370 RETURN
|
|
|
|
400 GOSUB 300"BELLINDEX"
|
|
410 LET TRI(BI) = BV
|
|
420 RETURN
|
|
|
|
500 DIM TRI(N * (N + 1) / 2)
|
|
510 LET BR = 1:BC = 0:BV = 1: GOSUB 400"SETBELL"
|
|
520 FOR I = 2 TO N
|
|
530 LET BR = I - 1:BC = I - 2: GOSUB 350"GETBELL"
|
|
540 LET BR = I:BC = 0: GOSUB 400"SETBELL"
|
|
550 FOR J = 1 TO I - 1
|
|
560 LET BR = I:BC = J - 1: GOSUB 350"GETBELL":V = BV
|
|
570 LET BR = I - 1:BC = J - 1: GOSUB 350"GETBELL"
|
|
580 LET BR = I:BC = J:BV = V + BV: GOSUB 400"SETBELL"
|
|
590 NEXT J,I
|
|
600 RETURN
|