汉诺塔
/推荐看小甲鱼的数据结构与算法视频/
void move(int n, char a, char b, char c)
{
if(n==1)
{
printf("%c-->%c\n", a,c);
}
else
{
move(n-1, a, c, b);//
printf("%c-->%c\n", a, c);
move(n-1, b, a, c);//两次参数传递的变换,表示中介发生变化
}
}
int main(void)
{
move(3, 'a', 'b', 'c');
}
//思路 A,B,C
第一步,把A->C 把A上面n-1个盘子通过B为中介移到C上面
第二步,把A上第N个盘子,放到B上面,
第三步,把C上面的N-1的盘子通过A移到B上面