ハノイの塔

トピック説明:

  ジェネシス、ベナレスバルトティーチ塔があるが、3本のダイヤモンド棒によってサポートされている場合には、神の初めに最初のスティックにある金のディスクの配置に応じて上から下まで大に小さな64を配置し、僧侶を命じましたすべての金板は、第1ルートルート石石バーから第三のロッドに移動し、小さなプレートの下原理処理プロセスのプラッタを観察します。動きはフルは、これらの料理を動かすだけ惣菜、ある場合には、このタワーは、世界の終わりに近づいたときには、ある、破壊されます。

アルゴリズムのアイデア:

  カラムはABCを標識した場合、それが支援するように一つだけのプレートに、二つのプレートがある場合、Cに移動されながら、A Cまで移動。

  二つ以上のプレートは、プレートを第三の周り覆われている場合、それは簡単です。

  これら三つのステップ、蓋部Cの各処理、即ち、A-> B、A-> C、B>のために二つのプレート。これは、再帰的な処理に入ります。

プログラムコード:

#include <stdio.h>
void hanoi(int n,char A,char B,char C)
{
    if(n==1)
    {
        printf("Move sheet %d from %c to %c\n",n,A,C);
    }
    else
    {
        hanoi(n-1,A,C,B);
        printf("Move sheet %d from %c to %c.",n,A,C);
        hanoi(n-1,B,A,C);
    }
}
int main()
{
    int n;
    printf("请输入盘数:");
    scanf("%d",&n);
    hanoi(n,'A','B','C');
    return 0;
}

結果:

ます。https://my.oschina.net/u/204616/blog/545037で再現

おすすめ

転載: blog.csdn.net/weixin_33756418/article/details/91989994