Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
40
Task/ABC-problem/Commodore-BASIC/abc-problem-2.basic
Normal file
40
Task/ABC-problem/Commodore-BASIC/abc-problem-2.basic
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
100 REM RECURSIVE SOLUTION
|
||||
110 MS=100:REM MAX STACK DEPTH
|
||||
120 DIM BL$(MS):REM BLOCKS LEFT
|
||||
130 DIM W$(MS):REM REMAINING LETTERS
|
||||
140 DIM I(MS):REM LOOP CONTROL VARIABLE
|
||||
150 DIM RV(MS):REM RETURN VALUE
|
||||
160 SP=-1:REM STACK POINTER
|
||||
170 READ BL$
|
||||
180 PRINT "USING BLOCKS: "
|
||||
190 FOR I=1 TO LEN(BL$) STEP 2
|
||||
200 : PRINT"("MID$(BL$,I,2)")";
|
||||
210 NEXT I
|
||||
220 PRINT CHR$(13)
|
||||
230 READ W$
|
||||
240 IF W$="" THEN 320
|
||||
250 PRINT W$;"->";
|
||||
260 SP=SP+1:BL$(SP)=BL$:W$(SP)=W$
|
||||
270 GOSUB 350
|
||||
280 IF RV(SP) THEN PRINT "YES": GOTO 300
|
||||
290 PRINT "NO"
|
||||
300 SP=SP-1
|
||||
310 GOTO 230
|
||||
320 READ BL$
|
||||
330 IF BL$ THEN PRINT:GOTO 180
|
||||
340 END
|
||||
350 IF LEN(W$(SP))=0 THEN RV(SP)=-1:RETURN
|
||||
360 I(SP)=1
|
||||
370 IF I(SP)>=LEN(BL$(SP)) THEN RV(SP)=0:RETURN
|
||||
380 IF MID$(BL$(SP),I(SP),1) = LEFT$(W$(SP),1) THEN 410
|
||||
390 IF MID$(BL$(SP),I(SP)+1,1) = LEFT$(W$(SP),1) THEN 410
|
||||
400 GOTO 450
|
||||
410 W$(SP+1)=MID$(W$(SP),2)
|
||||
420 BL$(SP+1)=LEFT$(BL$(SP),I(SP)-1)+MID$(BL$(SP),I(SP)+2)
|
||||
430 SP=SP+1:GOSUB 350:SP=SP-1
|
||||
440 IF RV(SP+1) THEN RV(SP)=-1:RETURN
|
||||
450 I(SP)=I(SP)+2:GOTO 370
|
||||
460 DATA BOXKDQCPNAGTRETGQDFSJWHUVIANOBERFSLYPCZM
|
||||
470 DATA A, BORK, BOOK, TREAT, COMMON, SQUAD, CONFUSE, ""
|
||||
480 DATA ABABACAC,ABBA,""
|
||||
490 DATA ""
|
||||
Loading…
Add table
Add a link
Reference in a new issue