递归经典--百练4147--汉诺塔问题

Posted 柳暗花明_liu

tags:

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

直接来看代码,来体会递归~

事实上,这个代码是最最让我体会到递归之美的~

好美啊~好妙啊~

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cctype>
using namespace std;

#define maxn 0x3f3f3f3f 

int coun=0;

void hanoi(int n,char a,char b,char c){            //将n个碟子,以b为中转,由a挪到c 
    if(n==1){
    cout<<1<<:<<a<<"->"<<c<<endl;
    coun++;
    return;
    }
    hanoi(n-1,a,c,b);
    coun++;
    cout<<n<<:<<a<<"->"<<c<<endl;
    hanoi(n-1,b,a,c);
    return;
}

int main(){
//    freopen("in.txt","r",stdin);
    int n;char a,b,c;
    scanf("%d %c %c %c",&n,&a,&b,&c);
    hanoi(n,a,b,c);
//    cout<<coun;
    return 0;
}

 

以上是关于递归经典--百练4147--汉诺塔问题的主要内容,如果未能解决你的问题,请参考以下文章

递归中两个经典的汉诺塔和青蛙跳台阶问题

递归经典:汉诺塔问题和青蛙跳台阶的三个问题(爆肝的数学推理步骤以及详细代码)

从"汉诺塔"经典递归到JS递归函数

递归_汉诺塔问题

经典汉诺塔递归实现

从汉诺塔问题来看“递归”本质