DIM B(3) ! 容器の容量 DATA 100,70,30 MAT READ B DIM W(3) DATA 100,0,0 ! 容器の中のジュースの初期状態 MAT READ W SUB move(x,y) ! xからyへ移動する LET t=MIN(W(x),B(y)-W(y)) ! 少ない方を選択 LET W(x)=W(x)-t LET W(y)=W(y)+t END SUB LET xx=0 LET yy=0 PRINT FOR n=0 TO 20 PRINT n;"手目" MAT PRINT W; IF W(1)=50 THEN GOTO 10 LET xx=W(2) LET yy=W(3) IF W(2)=0 THEN ! 最優先条件: 容器2が空ならば CALL move(1,2) ! 容器1からいっぱいに注ぐ ELSE IF W(3)=B(3) THEN ! 第2優先条件: 容器3がいっぱいならば CALL move(3,1) ! 容器1に戻す ELSE CALL move(2,3) ! 第3優先条件; 容器3がいっぱいでないならば → 容器2からいっぱいに注ぐ END IF END IF NEXT n 10 PRINT "以上";n;"手です。" PRINT END