首页 > 其他 > 详细

递归函数

时间:2020-04-19 02:32:39      阅读:45      评论:0      收藏:0      [点我收藏+]

递归函数:函数间接或者直接调用自己

递归分成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))

 

递归函数

原文:https://www.cnblogs.com/heertong/p/12727669.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!