C语言数据结构学习笔记--汉诺塔

C语言数据结构学习笔记--汉诺塔

#include<stdio.h>
/*
time:2015/6/28
*/
//递归实现汉诺塔,把n个盘子从柱子a借助b移动到c
void hani(int n, char a, char b, char c)
{
    if(n == 1)  //递归结束条件
    {
        printf("把第%d个盘子从%c移动到%c\n", n, a, c);
    }
    else
    {
        hani(n-1, a, c, b); //把n-1个盘子从柱子a借助c移动到b
        printf("把第%d个盘子从%c移动到%c\n", n, a, c);
        hani(n-1, b, a, c); ////把n-1个盘子从柱子b借助a移动到c

    }

}

int main(void)
{
    int n;
    printf("请输入盘子的个数:\n");
    scanf("%d", &n);
    hani(n, 'x', 'y', 'z');
    getch();
}



你可能感兴趣的:(数据结构,算法,C语言,汉诺塔,严蔚敏)