河内之塔

来源:互联网 发布:淘宝七天无条件退货 编辑:程序博客网 时间:2024/04/28 07:10

如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两具盘子时,就将B当作辅助柱。如果盘子数超过2,将第三个以下遮起来。即每次处理两个盘子。A->B,A->C,B->C.

#include<iostream>
using namespace std;
void hanoi(int n,char A,char B,char C)
{
if(n==1)
cout<<"Move sheet"<<n<<"from"<<A<<"to"<<C<<endl;
else{
hanoi(n-1,A,C,B);
cout<<"MOve sheet"<<n<<"from"<<A<<"to"<<C<<endl;
hanoi(n-1,B,A,C);
}
}
int main()
{
int n;
cin>>n;
hanoi(n,'A','B','C');
return 0;
}