一:简单使用
1.需求
写一个简单的阶乘。
2.程序
这个程序主要的功能是,通过例子理解阶乘
1 def factorial(n): 2 if n==1: 3 return 1 4 else: 5 return n*factorial(n-1) 6 7 fact=factorial(5) 8 print(fact)
3.效果
二:菲波那切数列
1.说明
1、1、2、3、5、8、13、21
在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)
2.程序
1 ##1、1、2、3、5、8、13、21 2 def fibonacci(n): 3 if n==1 or n==2: 4 return 1 5 else: 6 return fibonacci(n-2)+fibonacci(n-1) 7 8 fib=fibonacci(8) 9 print(fib)
3.效果、
三:汉诺塔
1.抽象后的做法
2.思路
这里以函数的形参为出发点。
将三个柱子(初始柱,过渡柱,目标柱)分别标记为A,B,C
1.将初始柱上除最下面的圆盘以外的圆盘全部搬到过渡柱上;
2.将初始柱上最下面的圆盘搬到目标柱上;
3.将过渡柱上的圆盘全部搬到目标柱上。
3.程序
1 ## 2 def hanoiTower(n,a,b,c): 3 if n==1: 4 print(a,'-->' ,c) 5 return 6 else: 7 hanoiTower(n-1,a,c,b) 8 print(a,'-->' ,c) 9 hanoiTower(n-1,b,a,c) 10 11 hanoiTower(3,'X','Y','Z')
4.效果