Hanoi塔问题

Posted joelwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hanoi塔问题相关的知识,希望对你有一定的参考价值。

采用递归分治的策略来解决汉诺塔问题

#include <iostream>
using namespace std;
void Hanoi(int n,char a,char b,char c);
void move(int n,char a,char b);
int cnt=0;
int main()

    cout<<"plase enter n:"<<endl;
    int n;
    cin>>n;
    cout << "Hanoi "<<n<<endl;
    Hanoi(n,A,B,C);
    cout<<"total move times: "<<cnt<<endl;
    return 0;


void Hanoi(int n,char a,char b,char c)
    if(n==1)
        move(n,a,c);cnt++;
    
    else
        Hanoi(n-1,a,c,b);
        move(n,a,c);cnt++;
        Hanoi(n-1,b,a,c);
    

void move(int n,char a, char b)
    cout<<"move number "<<n<<" block from "<<a<<" to "<<b<<endl;

 

以上是关于Hanoi塔问题的主要内容,如果未能解决你的问题,请参考以下文章

Hanoi塔问题

列表形式的汉诺塔(Tower of Hanoi)Python语言实现

双色Hanoi塔问题-递归

Hanoi汉诺塔问题

C语言案例---汉诺(Hanoi)塔问题

汉诺塔(Tower of Hanoi) 递归代码实现 c语言(顺序栈实现)