要把大象装冰箱,总共分几步?
Topic source这么一解释,超清楚,赞!
一直在纠结
move(n-1,a,c,b)
move(n-1,b,a,c)
n-1后面的abc顺序到底是怎么出来的,如果把 move[1],move[3]看成是起始位置和目的地的话,就很好理解了。
本来想一个人独立写答案,但被多个盘子时的细节打败了,被打击到停止学习py2个多月了。 今天终于鼓起勇气再来挑战,还是不会,不过这次学乖了来看一下同学们的回答。
看了楼主的解释,简单粗暴,终于勉强能看懂答案了。 不过还是不懂py具体是怎么找出步骤的……
总之我接着学下去吧
a,b,c a,c,b b,a,c b,c,a c,a,b c,b,a
move(n-1,a,c,b) move(n-1,b,a,c)
我想这个公式应该跟这个排序有关
大象放冰箱分3步
1:打开冰箱 2:放大象 3:关上冰箱
- 1
- 2
匿名sina网友V
要理解递归首先你得理解递归。 递归题就是找感觉,要有要把大象装冰箱总共分几步?这样的思维方式, 一但去抠细节你就中计了。
汉诺塔问题有三根柱子,我给它们分别命名为起始柱src,临时柱tmp,目的柱dst 盘子一共分两种情况: 1.只有1个盘子 这种情况下,直接从起始柱src 移动到 目的柱dst ,完成任务。
2.有1个以上的盘子 假如有n个盘子在起始柱,
知道这些就够了,千万别XJB去想细节!!! 知道这些就够了,千万别XJB去想细节!!! 知道这些就够了,千万别XJB去想细节!!!