递归函数
递归函数:函数间接或者直接调用自己
递归分成2个过程:
1.往下调用,分解过程
2.往上回溯,综合过程
注意条件:递归一定要有结束条件,以资源换取编写速度
#九九乘法表 for i in range(1,10): for j in range(1, i + 1): print(i*j, end=" ") print() tuple1 = ((1,2,3),('a','b','c')) #单层循环 for i,j,k in tuple1: print(i,j,k) def fun_a(n): #求n阶乘 print(n) if n == 1: return 1 return n*fun_a(n-1) print(fun_a(5)) def fun_b(n): #斐波那契数列 if n == 1 or n == 2: return 1 return fun_b(n-1) + fun_b(n-2) print(fun_b(10)) def hanno(a, b, c, n): #汉诺塔 if n == 1: print("{}->{}".format(a,c)) #一个盘子移一次 return None if n == 2: print("{}->{}".format(a,b)) #两个盘子移3次 print("{}->{}".format(a,c)) print("{}->{}".format(b,c)) return None hanno(a,c,b,n-1) #n个盘子,借助c盘子先把上面n-1个移到b盘 print("{}->{}".format(a, c)) hanno(b,a,c,n-1) #b上n-1个盘子,再借助a盘子移到c上 print(hanno('A','B','C',3))