Hanoi塔问题

徘徊边缘 提交于 2019-12-08 20:28:29
汉诺塔问题#include <iostream>
using namespace std;
void Hanoi(int n, char src, char mid, char dest )
//将src上的盘子以mid为中转移动到dest 
{
    if (n == 1){
        cout << src << "-->" << dest <<endl;
        return;
    }
    //如果只有一个盘子,那么直接从src移动到dest即可 
    Hanoi(n-1, src, dest, mid);    //先将n-1个盘子从src移动到mid,以dest为中转 
    cout << src << "-->" << dest <<endl;   //再将最大的一个盘子从src直接移动到dest 
    Hanoi(n-1, mid, src, dest);     //最后将n-1个盘子从mid移动到dest,以src为中转 
} 

int main(){
    int n;
    cin >> n;
    Hanoi(n, 'A', 'B', 'C');
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!