在汉诺塔(hanoitower)游戏中,总共有3根柱子和n个大小不一样的盘子。初始状态时n个盘子从小到大堆叠在1号柱子,下面的递归算法伪代码能够将这n个盘子从1号柱子移动到3号柱子。其中,该递归算法满足以下条件:(1)每次只移动1个盘子,(2)任何一个盘子只有当它上面没有堆放盘子时才能移动,(3)任何时刻在任何一个柱子上永远不能出现大盘子堆在小盘子之上的情况。请在 处填上适当内容,使其成为一个完整的算法。
hanoi(from, tmp, to, n)
{ if(n = = 1) {
move( (1) , (2) ) ;
return;
}
hanoi( (3) ) ;
printf ( “(%d, %d) ”, from, to ) ;
hanoi( (4) ) ;
return;
}
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE