(一)裴波拉契数列
利用递归算法获得裴波拉契数列前N个值的结果:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #裴波拉契数列,通过递归计算 2 def fb(n): 3 if n <=0: 4 res = 0 5 elif n ==1: 6 res = 1 7 elif n ==2: 8 res = 1 9 else: 10 res = fb(n-1) + fb(n-2) 11 return res 12 13 for i in range(1, 20): 14 print(fb(i), end=' ') 15 print(' end')
(二)汉诺塔(Hanoi Tower)
汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?
利用递归算法取得操作方法的最佳结果:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 ''' 2 汉诺塔(Hanoi Tower)问题,问应该如何操作? 3 ''' 4 def hanoi(n, a, b, c): 5 if n == 1: 6 print( a, " -> ", c ) 7 elif n == 2: 8 print( a, " -> ", b ) 9 print( a, " -> ", c ) 10 print( b, " -> ", c ) 11 else: 12 hanoi( n-1, a, c, b ) 13 print( a, " -> ", c ) 14 hanoi( n-1, b, a, c ) 15 return None 16 17 18 n = 4 19 print('移动次数:{0}'.format(2**n-1)) 20 hanoi( n,'A','B','C')