经典算法问题

1. 汉诺塔(Tower of Hanoi)

汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

解答:这里需要递归的方法。假设有n片,移动次数是f(n).显然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。此后不难证明f(n)=2^n-1。n=64时。

Java实现:

2. 100个人围成一圈数到三和三的倍数时出圈,剩下的人在原来的位置是多少?

posted @ 2021-12-13 17:51  E_lian  阅读(55)  评论(0编辑  收藏  举报