移动汉诺塔(6)

来源:互联网 发布:昆明到大理 汽车 知乎 编辑:程序博客网 时间:2024/05/01 08:44
 

#include <iostream>
using namespace std;

void Move(char x,char y)
{
 cout<<x<<"--->"<<y<<endl;
}

//递归调用:JKH分别为3科柱子
void hanol(int n,char j,char k,char h)
{
 if(n==1)
  Move(j,h);
 else
 {
  //将A上的n-1个移动到B上,借助C
  //将A上最后一个移动到C上
  //将B上n-1一个移动到C上,借助A
  hanol(n-1,j,h,k);
  Move(j,h);
  hanol(n-1,k,j,h);
 }
}

int main()
{
 cout<<"盘子个数:";
 int m;
 cin>>m;

 cout<<"移动方式:\n";
 hanol(m,'A','B','C');
 cout<<"\n";
 cin.get();// 停止屏幕
}

 

原创粉丝点击