Python 遞迴的練習
阿新 • • 發佈:2018-12-21
遞迴的練習
遞迴的瞭解例項
1 # 定義一個類(num是需要給出的引數) 2 # 一定要有臨界值 3 # 要有遞推的關係 4 def digui(num): 5 6 # 列印num 7 print('$'+str(num)) 8 9 # 如果num大於0 10 if num > 0: 11 # 呼叫自己每次減一 12 digui(num - 1) 13 # 否則 14 else: 15 # 列印*20次(用來分割線) 16 print("*" * 20) 17 18 # 列印num 19 print('$'+str(num)) 20 21 digui(3) 22 # 執行結果 23 $3 24 $2 25 $1 26 $0 27 ******************** 28 $0 29 $1 30 $2 31 $3 32 # 以上的原理是輸入3 列印3 判斷3是否大於0 符合呼叫自己-1 得到2 2繼續當引數傳上去 列印2 判斷2是否大於0 符合呼叫自己-1以此類推 33 # 不滿足的情況下列印分隔符 然後把上面的得到結果資料 打印出來
斐波那契數列(黃金分割線)
1 def feb(n): 2 if n == 1: 3 return 1 4 if n == 2: 5 return 2 6 return feb(n-1) + feb(n-2) 7 8 feb(5) 9 # 執行結果 10 8
漢諾塔
1 def hanno(n,a,b,c): 2 if n == 1: 3 print(a , "-->" , c) 4 return None 5 6 if n == 2:7 print(a,"-->" ,b) 8 print(a, "-->" ,c) 9 print(b,"-->" ,c) 10 return None 11 12 hanno(n-1,a,c,b) 13 print(a, "-->" ,c) 14 hanno(n-1,b,a,c) 15 16 a = "A" 17 b = "B" 18 c = "C" 19 n =3 20 hanno(n,a,b,c) 21 # 執行結果 22 A --> C 23 A --> B 24 C --> B 25 A --> C 26 B --> A 27 B --> C 28 A --> C