1. 程式人生 > >Python 遞迴的練習

Python 遞迴的練習

遞迴的練習

 

遞迴的瞭解例項

 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