1 #递归在编程上表现为一个函数调用它自身
2 #注意,必须设置正确的返回条件
3 #递归的作用:如汉诺塔、目录索引、快速排序、二叉树遍历
4 #递归的核心思想就是将规模大的问题变成规模小的问题组合,从而简化问题的解决难度
5
6 #递归函数
7 #实例一:编写一个power函数,返回x的y次幂
8 def power(x,y):
9 if y :
10 return x * power(x,y-1)
11 else:
12 return 1
13
14 print(power(2,3))
15
16 #实例二:编写一个辗转相除法求最大公约数
17 def gcd(x,y):
18 if y:
19 return gcd(y,x%y)
20 else:
21 return x
22
23 print(gcd(4,6))
24
25 #实例三:解决汉诺塔
26 def hanoi(n,x,y,z):
27 if n == 1:
28 print(x,"-->",z)
29 else:
30 hanoi(n-1,x, z, y )#将前n-1个盘子从x移动到y上
31 print(x,"-->",z) #将底下最后一个盘子从x移动到z上
32 hanoi(n-1,y,x,z) #将y上的n-1个盘子移动到z上
33
34 hanoi(3,"X","Y","Z")