C++中汉诺塔问题(递归)

#include
#include
#include
#include
using namespace std;
int k=0;
void nuo(int n,char x,char z,char y){
    if(n==0) return;
    //整体看成两个部分:最底下  和 除了底下的(n-1) 
    //需要将x移到y上  x y z (源 目标 过渡) 
    nuo(n-1,x,y,z);
    k++;//用于计数 
    cout<"<     //将y移到z上  y z x(源 目标 过渡) 
    nuo(n-1,y,z,x);

int main(){
    //汉诺塔问题
    //将x放到z上 
    //目标:将y作为过渡 ,将x上的金片转到z上  x z y (源 目标 过渡) 
    int n;
    cin>>n;
    nuo(n,'x','z','y');
    

    return 0;
}
 

你可能感兴趣的:(C++中汉诺塔问题(递归))