C语言函数递归解决汉诺塔问题代码演示(带详细注释)
//1.汉诺塔问题
/*
1个盘子:A->C 1
2个盘子:A->B A->C B->C
3个盘子:A->C A->B C->B A->C B->A B->C A->C
*/
//
// void move(char pos1,char pos2)
// {
// printf(" %c->%c ",pos1,pos2);
// }
// void Hannuota(int n,char pos1,char pos2,char pos3)
// {
// /*
// n代表盘子个数
// pos1:起始位置
// pos2:中转位置
// pos3:目的位置
// */
// if(n==1)
// {
// move(pos1,pos3);//一个盘子直接从起始位置移动到目的位置
// }
// else
// {
// Hannuota(n-1,pos1,pos3,pos2);
// move(pos1,pos3);
// Hannuota(n-1,pos2,pos1,pos3);
// }
// }
// int main()
// {
// Hannuota(1,'A','B','C');
// printf("\n");
// Hannuota(2,'A','B','C');
// printf("\n");
// Hannuota(3,'A','B','C');
// printf("\n");
//
// return 0;
// }
/*