|
SECOND |
|
十進BASIC です。1〜12段までやってみました。違ってたらゴメン
FOR y=1 TO 12 LET sum=0 CALL octa(0,0) PRINT USING"! ## 段 #### 通り": y,sum NEXT y SUB octa(k,p) LET s=s+p !k 桁までの段数 IF y=s THEN !y 段丁度 LET sum=sum+1 !y 段の累計 ELSEIF s< y THEN !y 段未満 CALL octa(k+1,1) !次の1段追加 IF p<>2 THEN CALL octa(k+1,2) !不連続の2段追加 IF p<>3 THEN CALL octa(k+1,3) !不連続の3段追加 END IF LET s=s-p !k 桁の段数 cancel END SUB END !<実行結果> ! 1 段 1 通り ! 2 段 2 通り ! 3 段 4 通り ! 4 段 6 通り ! 5 段 11 通り ! 6 段 19 通り ! 7 段 32 通り ! 8 段 55 通り ! 9 段 95 通り ! 10 段 163 通り ! 11 段 280 通り ! 12 段 481 通り |
|
4月25日(日) 19:50:42
50430 |