码迷,mamicode.com
首页 > 编程语言 > 详细

廖雪峰网站:学习python函数—递归函数(四)

时间:2018-07-24 21:16:42      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:python函数   bsp   导致   阶乘   其他   递归函数   栈溢出   学习python   逻辑   

 

 

# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数

# 计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

# fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n


# 使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。

def fact(n):
    if n==1:
        return 1
    return n * fact(n-1)
print(fact(1) =, fact(1))
print(fact(5) =, fact(5))
print(fact(10) =, fact(10))


# 利用递归函数移动汉汉诺塔:
def move (n, a, b, c):
    if n == 1:
        print(move, a, -->, c)

    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)
move(4, A, B, C)

 

廖雪峰网站:学习python函数—递归函数(四)

标签:python函数   bsp   导致   阶乘   其他   递归函数   栈溢出   学习python   逻辑   

原文地址:https://www.cnblogs.com/qy1234/p/9362581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!