『今週の問題』第190回 解答


◆東京都 明 さんからの解答

●確認用のプログラム

LET N=4  !有効な数値
DIM NB(10)
DATA 7,17,27,37,47,57,67,77,87,97 
MAT READ NB

FOR J=1 TO 10
   LET D=NB(J)
   LET M=1
   CALL main
   PRINT
NEXT J
STOP

SUB main
   IF MOD(D,N)=0 THEN EXIT SUB
   PRINT "NUMBER =";D
   LET P=0
   DO
      LET P=P+1
      LET NO=4^P
      LET CT=0
      DO
         CALL calc
         CALL check
         LET END=0
         LET CT=CT+1
         IF CT=NO THEN EXIT DO
      LOOP 
   LOOP UNTIL M=0
   PRINT "たたいた回数:";P+1
END SUB

SUB calc
   LET OPN=CT
   LET OC=P
   LET S=N
   DO
      LET OP=MOD(OPN,4)
      LET OPN=INT(OPN/4)
      SELECT CASE OP
      CASE 0
         LET S=S-N
      CASE 1
         LET S=S/N
      CASE 2
         LET S=S+N
      CASE 3 
         LET S=S*N
      END SELECT
      LET OC=OC-1
   LOOP UNTIL OC=0
END SUB

SUB check
   IF S<=0 THEN EXIT SUB
   IF D=S THEN
      LET M=0
      CALL print
   END IF
END SUB


SUB print
   LET OPN=CT
   LET OC=P
   LET NB$=STR$(N)
   LET CH$="C" & NB$
   DO
      LET OP=MOD(OPN,4)
      LET OPN=INT(OPN/4)
      SELECT CASE OP
      CASE 0
         LET CH$=CH$ & "-" & NB$
      CASE 1
         LET CH$=CH$ & "/" & NB$
      CASE 2
         LET CH$=CH$ & "+" & NB$
      CASE 3 
         LET CH$=CH$ & "*" & NB$
      END SELECT
      LET OC=OC-1
   LOOP UNTIL OC=0
   LET CH$=CH$ & "=" & STR$(S)
   PRINT CH$
END SUB

END


 ◆ 問題へもどる

 ◆ 今週の問題

数学の部屋へもどる