美文网首页
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);
        }
    }
    

    相关文章

      网友评论

          本文标题:Hanoi Tower

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