(一)裴波拉契数列

利用递归算法获得裴波拉契数列前N个值的结果:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 Python练习:关于递归的经典实例设计 Python 第1张
 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('\nend')
View Code

(二)汉诺塔(Hanoi Tower)

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

利用递归算法取得操作方法的最佳结果:

Python练习:关于递归的经典实例设计 Python 第3张
 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')
View Code

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄