※ 引述《starCin (重慶森裡的大城小事)》之銘言:
: ※ 引述《HPChou (Hugh)》之銘言:
: : 1.先把最大銅盤上面所有的搬到 2 去
: ^^^^但是最大的不是在最下面嗎??
因為他在最下面,所以搬上面的方式是用遞迴的去搬
: : 2.然後再把最大的搬到 3 去
: : 3.最後在把之前搬到 2 的從 2 搬到 3 去
: : 1. 和 3. 用遞迴做掉就可以了
: 也就是說每次都先跑第2個柱子在跑第3個??
: (正好看見這問題,也有疑惑..)
3是指目的柱,2是中間柱(因為要靠他才能把最下面的搬到目的去)
因為這題是要從1搬到3,所以要先把最大盤子上面的所有先搬到2去
才能把最大的搬到3去
可能講的還是有點不夠清楚,寫成虛擬碼好了:p
拿三個的那個例子跑一下應該就瞭解了
sub honaii(n,a,b,c)
'n 要搬的盤子個數
'a 來源柱
'b 目的柱
'c 中間柱
if n > 1 then
'最大盤子上不只一個盤子
honaii(n-1,a,c,b) '先把上面n-1個從來源搬到中間柱
write 來源 -> 目的 '把最大的搬到目的去
honaii(n-1,c,b,a) '再把上面n-1個從所在的中間柱搬到目的
else
'上面只有一個盤子直接搬
write 來源 -> 目的
end if
end sub
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.27.102