|
問題
長さn[cm]の1本の棒を1[cm]単位に切り分けることを考える。
ただし、1本の棒を一度に切ることができるのは、1人だけである。
切り分けた棒が3本あれば、同時に3人で切ることができる。
最大m人の人がいるとき、最短何回で切り分けることができるかを求めよ。
たとえば、m=3,n=8のときは4回となる。
出題 Q04 プログラム脳を鍛える数学パズル 増井敏克著 翔泳社
PRINT cutbar(3,8)
PRINT
PRINT cutbar(36,100)
PRINT
PRINT cutbar(12,50)
PRINT
PRINT cutbar(24,80)
END
EXTERNAL FUNCTION cutbar(M,N) !1[cm]の棒をm人で結合してn[cm]にする
LET CNT=0 !回数
LET T=1 !棒の長さ
DO WHILE T<N
IF T<M THEN LET T=T+T ELSE LET T=T+M
PRINT T !debug
LET CNT=CNT+1
LOOP
LET cutbar=CNT
END FUNCTION
|
|