递归分析
递归:通过自我调用来解决问题的函数
递归通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
递归要注意:
1.递归出口
2.当前问题如何变成子问题
利用递归写一个阶乘函数,F(n),求n的阶乘
def f(n):#递归出口if n<= 1:return 1ans = n*f(n-1)return ansprint(f(5))
汉诺塔问题
# n个盘子从A挪到C,借助B
def Move(n,A,B,C):#递归出口if n ==0:return #n-1个盘子从A挪到BMove(n-1,A,C,B)#第n个盘子从A挪到Cprint("{}->{}".format(A,C))#n-1个盘子从B挪到CMove(n-1,B,A,C)n = int(input())
Move(n,'A','B','C')
输入结果: