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

 

转载于:https://www.cnblogs.com/Rimmpeddo/p/10155299.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值