汉诺塔问题
#include <stdio.h>
#include <stdlib.h>
void hanoi(int, char, char, char);
void move(int, char, char);
int main(void)
{
    hanoi(3, 'A', 'B', 'C');
    return 0;
}
//将n个塔座从a搬到c,b为辅助
void hanoi(int n, char a, char b, char c)
{
    if (n > 0)
    {
        //先将n - 1个塔座从a搬到b,c为辅助
        hanoi(n - 1, a, c, b);
        //将第n个从a搬到c
        move(n, a, c);
        //再将n - 1个塔座从b搬到c,a为辅助
        hanoi(n - 1, b, a, c);
    }
}
void move(int n, char from, char to)
{
    printf("move %d from %c to %c\n", n, from, to);
}

阅读更多
文章标签: include c
个人分类: Algorithm
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

汉诺塔问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭