Discuss / Python / 递归函数,防止栈溢出(尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式),

递归函数,防止栈溢出(尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式),

Topic source
# 阶乘
def fact(n):
    return fact_iter(n, 1)


def fact_iter(num, product):
    if num == 1:
        return product
    return fact_iter(num - 1, num * product)


print(fact(5))
# 汉诺塔: n表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法
def move(n, A, B, C):
    if n == 1:
        print(A, "-->", C)
    else:
        move(n - 1, A, C, B)
        move(1, A, B, C)
        move(n - 1, B, A, C)


move(3, "A", "B", "C")

  • 1

Reply