Python 学习笔记 -- 递归函数

 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")
原文地址:https://www.cnblogs.com/jiangchenxi/p/8018842.html