ハノイの問題の塔(再帰) - 学習アルゴリズム

問題

古代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;
}
公開された79元の記事 ウォンの賞賛133 ・は 40000 +を見て

おすすめ

転載: blog.csdn.net/weixin_45822638/article/details/105027508