汉诺塔
来源:互联网 发布:php蜘蛛池程序 编辑:程序博客网 时间:2024/06/15 07:10
题目:
1,2,...,n表示n个盘子.数字大盘子就大.n个盘子放在第1根柱子上.大盘不能放在小盘上.
在第1根柱子上的盘子是a[1],a[2],...,a[n]. a[1]=n,a[2]=n-1,...,a[n]=1.即a[1]是最下
面的盘子.把n个盘子移动到第3根柱子.每次只能移动1个盘子,且大盘不能放在小盘上.
问第m次移动的是那一个盘子.
分析:在第1根柱子上的盘子是a[1],a[2],...,a[n]. a[1]=n,a[2]=n-1,...,a[n]=1.即a[1]是最下
面的盘子.把n个盘子移动到第3根柱子.每次只能移动1个盘子,且大盘不能放在小盘上.
问第m次移动的是那一个盘子.
对于第一个盘子从第一次2^0开始,后面每次要等一个盘子移动完它就移动,也就是说1号盘子隔一个移动一次,即1,3,5,7...是它移动的顺序
对于第二个盘子从第二次2^1开始,需要等比它号码高的一个盘子移动后还要等比它号码低的盘子全部移动后才能移动,即2号要等1号移动完,需要等2^1+2^1=2^2次
即2号盘子每次移动的序号是2,6,10,14..
对于第3个盘子从2^2开始,同样需要等比它号码高的一个盘子移动后还要等比它号码低的盘子全部移动完后才能移动,即3号要等1,2号移动完才行,需要等2^1+2^2+2^1=2^3次
即3号盘子每次移动的序号是4,12,20...
后面的规律类似……代码如下:
0 0
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 什么是软件设计(OCP)原则
- (更新)OutputDebugString函数简单封装,实现格式化打印输出(VC++)
- java socket 长连接 nputStream的read 阻塞问题情况之一
- [sicily]1813. M进制数问题
- HDU - 1864 最大报销额(01背包)
- 汉诺塔
- poj 1386 Play on Words(单向欧拉函数+并查集)
- 后台程序
- Android Api Demos登顶之路(八十)Graphics-->PathFillTypes
- Mysql 锁机制详解
- rotate图片旋转 http://blog.csdn.net/lonelyroamer/article/details/8252533
- LeetCode---Linked List Cycle
- TI DSP的CMD文件
- hdu1141