37 lines
675 B
Plaintext
37 lines
675 B
Plaintext
PROGRAM COMBINATIONS
|
|
|
|
CONST M_MAX=3,N_MAX=5
|
|
|
|
DIM COMBINATION[M_MAX],STACK[100,1]
|
|
|
|
PROCEDURE GENERATE(M)
|
|
LOCAL I
|
|
IF (M>M_MAX) THEN
|
|
FOR I=1 TO M_MAX DO
|
|
PRINT(COMBINATION[I];" ";)
|
|
END FOR
|
|
PRINT
|
|
ELSE
|
|
FOR N=1 TO N_MAX DO
|
|
IF ((M=1) OR (N>COMBINATION[M-1])) THEN
|
|
COMBINATION[M]=N
|
|
! --- PUSH STACK -----------
|
|
STACK[SP,0]=M STACK[SP,1]=N
|
|
SP=SP+1
|
|
! --------------------------
|
|
|
|
GENERATE(M+1)
|
|
|
|
! --- POP STACK ------------
|
|
SP=SP-1
|
|
M=STACK[SP,0] N=STACK[SP,1]
|
|
! --------------------------
|
|
END IF
|
|
END FOR
|
|
END IF
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
GENERATE(1)
|
|
END PROGRAM
|