!自然数の分割 と ヤング図形 PRINT INPUT PROMPT "分割したい自然数は? ( 2 〜 15 ) ":N PRINT PUBLIC NUMERIC A(15) PUBLIC NUMERIC C LET C=0 PUBLIC NUMERIC HEIGHT FOR HEIGHT=1 TO N CALL print_young(HEIGHT,N,N) NEXT HEIGHT PRINT END EXTERNAL SUB print_young(d,n,m) IF d>0 THEN LET upper=n-d+1 LET lower=INT((n-1)/d)+1 FOR i=MIN(m,upper) TO lower STEP -1 LET A(HEIGHT-d+1)=i CALL print_young(d-1,n-i,i) NEXT i ELSE LET C=C+1 PRINT "No.";C MAT PRINT A; FOR i=1 TO HEIGHT FOR j=1 TO A(i) PRINT "□"; NEXT j PRINT NEXT i PRINT END IF END SUB