码迷,mamicode.com
首页 > 其他好文 > 详细

Hanoi塔问题

时间:2019-06-10 10:42:05      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:void   span   code   cin   str   names   class   pre   分治   

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

#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塔问题

标签:void   span   code   cin   str   names   class   pre   分治   

原文地址:https://www.cnblogs.com/joelwang/p/10996336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!