閱讀63 返回首頁    go 阿裏雲 go 技術社區[雲棲]


遞歸求漢諾塔

#include <iostream>

using namespace std;

void Move(int n, char src, char dest)
{
    cout << "dist " << n << " moves from " << src << " to " << dest << endl;
}

void MoveTo(int n, char src, char dest, char tmp)
{
    if (n == 1)
        cout << "disk " << n << " moves from " << src << " to " << dest << endl;
    else
    {
        MoveTo(n-1, src, tmp, dest);
        Move(n, src, dest);
        MoveTo(n-1, tmp, dest, src);
    }
}

int main()
{
    MoveTo(4, 'A', 'B', 'C');

    cin.get();
    return 0;
}

最後更新:2017-04-02 15:15:29

  上一篇:go 一個大數拆成兩個素數相乘
  下一篇:go 仰望星空不如腳踏實地