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")