首页 > 代码库 > 汉诺塔

汉诺塔

#include <stdio.h>void hannuota(int n, char a, char b, char c){    /*    若果是1个盘子            直接将盘从子啊a移动到c;    否则        先将a柱子上的(n-1)个借助c移动到b,        再将a柱子上的盘子移动到c,        最后将移动b柱子上的(n-1)个盘子借助a移动到c上。    */    if(n == 1)    {        printf("将编号为%d的盘子直接从%c柱子移动到%c柱子\n", n, a, c);    }    else    {        hannuota(n-1, a, c, b);        printf("将编号为%d的盘子直接从%c柱子移动到%c柱子\n", n, a, b);        hannuota(n-1, b, a, c);    }}void main(){    int n;    char ch1 = A;    char ch2 = B;    char ch3 = C;        printf("请输入要移动的盘子个数:");    scanf("%d", &n);    hannuota(n, A, B, C);    }

 

汉诺塔