阅读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 仰望星空不如脚踏实地