57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
PROCsolve24("1234")
|
|
PROCsolve24("6789")
|
|
PROCsolve24("1127")
|
|
PROCsolve24("5566")
|
|
END
|
|
|
|
DEF PROCsolve24(s$)
|
|
LOCAL F%, I%, J%, K%, L%, P%, T%, X$, o$(), p$(), t$()
|
|
DIM o$(4), p$(24,4), t$(11)
|
|
o$() = "", "+", "-", "*", "/"
|
|
RESTORE
|
|
FOR T% = 1 TO 11
|
|
READ t$(T%)
|
|
NEXT
|
|
DATA "abcdefg", "(abc)defg", "ab(cde)fg", "abcd(efg)", "(abc)d(efg)", "(abcde)fg"
|
|
DATA "ab(cdefg)", "((abc)de)fg", "(ab(cde))fg", "ab((cde)fg)", "ab(cd(efg))"
|
|
|
|
FOR I% = 1 TO 4
|
|
FOR J% = 1 TO 4
|
|
FOR K% = 1 TO 4
|
|
FOR L% = 1 TO 4
|
|
IF I%<>J% IF J%<>K% IF K%<>L% IF I%<>K% IF J%<>L% IF I%<>L% THEN
|
|
P% += 1
|
|
p$(P%,1) = MID$(s$,I%,1)
|
|
p$(P%,2) = MID$(s$,J%,1)
|
|
p$(P%,3) = MID$(s$,K%,1)
|
|
p$(P%,4) = MID$(s$,L%,1)
|
|
ENDIF
|
|
NEXT
|
|
NEXT
|
|
NEXT
|
|
NEXT
|
|
|
|
FOR I% = 1 TO 4
|
|
FOR J% = 1 TO 4
|
|
FOR K% = 1 TO 4
|
|
FOR T% = 1 TO 11
|
|
FOR P% = 1 TO 24
|
|
X$ = t$(T%)
|
|
MID$(X$, INSTR(X$,"a"), 1) = p$(P%,1)
|
|
MID$(X$, INSTR(X$,"b"), 1) = o$(I%)
|
|
MID$(X$, INSTR(X$,"c"), 1) = p$(P%,2)
|
|
MID$(X$, INSTR(X$,"d"), 1) = o$(J%)
|
|
MID$(X$, INSTR(X$,"e"), 1) = p$(P%,3)
|
|
MID$(X$, INSTR(X$,"f"), 1) = o$(K%)
|
|
MID$(X$, INSTR(X$,"g"), 1) = p$(P%,4)
|
|
F% = TRUE : ON ERROR LOCAL F% = FALSE
|
|
IF F% IF EVAL(X$) = 24 THEN PRINT X$ : EXIT FOR I%
|
|
RESTORE ERROR
|
|
NEXT
|
|
NEXT
|
|
NEXT
|
|
NEXT
|
|
NEXT
|
|
IF I% > 4 PRINT "No solution found"
|
|
ENDPROC
|