您的位置:首页 > 理论基础 > 数据结构算法

汉诺塔问题——递归

2014-04-15 14:32 232 查看
#include <stdio.h>

int loop = 0; // 记录移动次数

void hanNuoTa(int n, char a, char b, char c)

{

    if(n == 1)

    {

        printf("%c ——> %c\n", a, c);

        ++loop;

    }

    else

    {

        hanNuoTa(n-1, a, c, b);

        printf("%c ——> %c\n", a, c);

        ++loop;

        hanNuoTa(n-1, b, a, c);

    }

}

int main()

{

    int n = 0;

    printf("请输入盘子的数量");

    scanf("%d",&n);

    char a = 'a', b = 'b', c = 'c';

    hanNuoTa(n, a, b, c);

    printf("共移动%d次!\n",loop);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息