(本次为1代版本,盘子数有点少,功能待改进,尽情期待)
#include<bits/stdc++.h>
using namespace std;
int k,m;
void mov(int n,char a,char c,char b){
if(n==0)return;
mov(n-1,a,b,c);
k++;
cout<<" 第"<<k<<"步:将"<<a<<"杆的最顶端盘子移到"<<c<<"杆"<<endl;
mov(n-1,b,c,a);
}
int main(){
cout<<"================================================汉诺塔解法器(版本1)====================================================="<<endl;
cout<<"请输入盘子数(小于14,因为13个盘子已有8000多步!!!):";
cin>>m;
cout<<"以下为一种解法:"<<endl;
mov(m,'a','c','b');
cout<<" 共"<<k<<"步!";
return 0;
}
本文有m个盘子,输出为移动位置,没有具体移动编号,以后我会改进的!