/**
* 汉诺塔
*
* @param m 盘子的个数
* @param a a柱
* @param b b柱
* @param c c柱
*/
void hanoi(int m,char a,char b,char c){
if (m==1) {
printf("%c------->%c\n",a,c); //如果只有一个盘子,直接从a移动到c
}else{ //超过一个
hanoi(m-1, a, c, b); //先将m-1个盘子通过c移动到b
hanoi(1, a, b, c); //然后将最后一个移动到c
hanoi(m-1, b, a, c); //最后后将m-1个盘子从b通过a移动到c
}
}
汉诺塔算法(递归)
最新推荐文章于 2021-08-22 20:04:06 发布