一、汉诺塔问题 汉诺塔是由三根杆子A,B,C组成的。A杆上有n个(n>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。提示:可将圆

一、汉诺塔问题
汉诺塔是由三根杆子A,B,C组成的。A杆上有n个(n>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须尊循上述两条规则。问:如何移?最少要移动多少次?

输入为一个整数后面跟三个单字符字符串。 
整数为盘子的数目,后三个字符表示三个杆子的编号。

输出每一步移动盘子的记录。一次移动一行。 
每次移动的记录为例如3:a->b 的形式,即把编号为3的盘子从a杆移至b杆。 
我们约定圆盘从小到大编号为1, 2, …n。即最上面那个最小的圆盘编号为1,最下面最大的圆盘编号为n。

例如输入
3 a b c

输出
1:a->c
2:a->b
1:c->b
3:a->c
1:b->a
2:b->c
1:a->c

二、全排列
  从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
  如1,2,3三个元素的全排列为:
  1,2,3
  1,3,2
  2,1,3
  2,3,1
  3,1,2
  3,2,1

三、斐波那契数列
  斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……
  这个数列从第三项开始,每一项都等于前两项之和。

四、共有十阶楼梯,小张每次只能走一阶或两阶,共有多少种方法走完此楼梯

五、用递归算法求数组最大值

你可能感兴趣的:(算法,数据结构,动态规划,java,栈)