美文网首页
Hanoi Tower

Hanoi Tower

作者: Pwnmelife | 来源:发表于2019-01-07 21:08 被阅读0次
#include <stdio.h>
#include <stdlib.h>

void mov(int n, char x, char y, char z);

int main()
{
    char x, y, z;
    x = 'x';
    y = 'y';
    z = 'z';
    printf("Please input the hanoi tower number\n");
    int n;
    scanf("%d", &n);
    mov(n, x, y, z);
}
/*
 * 将全部盘从X,借助Y,移到Z
 * 1. 当n=1时,直接移动到目标顶针
 *  2. 当n>2,分为以下三步
 *  -  将n-1个盘移到Y,借助Z
 *  -  将第n个盘移到Z,
 *  -  将n-1个盘从Y移到Z,借助X
 */
void mov(int n, char x, char y, char z) {
    if (1 == n) {
        printf("%c --> %c\n", x, z);
    }
    else {
        mov(n - 1, x, z, y);
        printf("%c --> %c\n", x, z);
        mov(n - 1, y, x, z);
    }
}

相关文章

  • Tower of Hanoi

    有 A、B、C 三根柱子 当前 A 柱套了 n 个圆环 由上至下这 n 个圆环的直径依次变大 要将所有圆环从 A ...

  • Hanoi Tower

    1.问题描述: 有一个梵塔,塔内有A、B、C三个座,A座上有很多个盘子,盘子大小不等,大的在下,小的在上。我们要把...

  • Hanoi Tower

  • Tower of Hanoi的理解

    汉诺塔之前一直是知道过程,理解不了代码。直到今天在知乎上看到一种理解方式,一下子就懂了。如何理解汉诺塔的递归? -...

  • python 汉诺塔

    汉诺塔 (https://en.wikipedia.org/wiki/Tower_of_Hanoi) 的移动也可以...

  • Tower of Hanoi(汉诺塔)

    汉诺塔游戏:A,B,C三根柱子,A柱子上有由上至下依由小至大排列的n张碟子,现在要将这n张碟子移动到C柱子上,移动...

  • 汉诺塔问题与递归

    文章也同时在个人博客 http://kimihe.com/更新 汉诺塔问题(Hanoi Tower) 汉诺塔问题的...

  • 递归--汉诺塔(Hanoi Tower)

    前置文章:递归算法:www.jianshu.com/p/703069f3ba3f . 汉诺塔问题是来源于印度传...

  • 227.Mock Hanoi Tower by Stacks

    public class Tower {private Stack disks;// create three ...

  • 汉诺塔问题(Hanoi Tower)

    C语言实现代码 函数Hanoi()功能将n个碟子从a移到c,b为交换的柱子。c也可以为交换柱子,可以指定from ...

网友评论

      本文标题:Hanoi Tower

      本文链接:https://www.haomeiwen.com/subject/mnbprqtx.html