問題
古代A塔は、塔がAから僧を望んでいるプレート64があり、Aは、下部大小径ディスクプレート64、プレートサイズを有する三の座A、B、Cを有し、ブロックCを移動するが、各時間のみトレイを移動させ、移動中、3つの残る市場下シートは、小さなキャップに、シートBを利用することができるの移動中に、ステップの出力は、移動させるのに必要な
アイデアを。
Bは、リレーを有するプレートであるプレートを移動させるためにCへの遷移のために最後に通過時間のためにB、Cへの第1の移動板Aに、Cドライブを移動させるために、再帰的に形成されています。
コード:
void Hanoi(int n,char A,char B,char C)
//将A座上的n个盘子,以B为中转,移动到C座
{
if(n==1){//只需移动一个盘子
cout<<A<<"->"<<C<<endl;
//直接将盘子从A移动到C
return ;//递归终止
}
Hanoi(n-1,A,C,B);//先将n-1个盘子从A移动到B
cout<<A<<"->"<<C<<endl;
Hanoi(n-1,B,A,C);//最后将n-1个盘子从B移动到C
return;
}
int main()
{
int n;
cin>>n;//输入盘子数目
Hanoi(n,'A','B','C');
return 0;
}