漢羅塔

圖示參考 https://blog.csdn.net/renlianggee/article/details/89945824

1 要把 n 個盤子從 A 移動到 C
2 那么必須把 n-1 個盤子從 A 移動到 B,這樣 最大的盤子 n 才能從 A 移動到 C
3 此時再把 n-1 個盤子 從 B 移動到 C。

本來我們的跳板是B, 步驟2 的跳板變成了 C。步驟3 的跳板 變成了A。


代碼如下:

void moveDisk(int disk, string src, string tar)
{
Console::out("盤子", disk, "? 從", src, "? 移動到", tar);
}

void hanno(int n, string src, string help, string tar)
{
? if (n == 1)
? {
??? moveDisk(1, src, tar);
? }else
? {
??? hanno(n - 1, src, tar, help);
??? moveDisk(n, src, tar);
??? hanno(n - 1, help,src, tar);
? }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容