C语言经典算法(十)——递归实现汉诺塔

后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现汉诺塔

1、 递归实现汉诺塔
<1> 题目描述:输入n值,实现n个盘子的汉诺塔移动,小盘子在上
<2> 方法:递归法
源码:
一、 递归实现汉诺塔

    #include<iostream>
#include<assert.h>
using namespace std;
void Move(int n, char A, char B, char C)//三个柱子ABC
{
        if(n == 1)//结束条件
        {
            cout<<A<<"-->"<<C<<endl;
        }
        else
        {
            Move(n-1,A,C,B);
            cout<<A<<"-->"<<C<<endl;
            Move(n-1,B,A,C);
        }
}
void main()
{
        int n;
        cout<<"请输入圆盘的个数n:>";
        cin>>n;
        Move(n,'A','B','C');
}

猜你喜欢

转载自blog.csdn.net/zxh1592000/article/details/79027722