【python】[n的阶层;斐波那契数列] 循环, 递归,尾递归示例

【python】[n的阶层;斐波那契数列] 循环, 递归,尾递归示例

# --n的阶层
# 递归
def fact(n):
    if n == 1:
        return 1
    return n*fact(n-1)


# 尾递归
def fact_iter(num, product=1):
    if num == 1:
        return product
    return fact_iter(num-1, num*product)


# 循环
def fact_cycle(n):
    if n == 1:
        return 1
    else:
        tmp = 1
        for i in range(1, n+1):
            tmp = tmp*i
        return tmp


# --斐波那契数列
# 递归
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)


# 尾递归
def fib_iter(num, res=0, tmp=1):
    if num == 0:
        return res
    return fib_iter(num-1, tmp, res+tmp)


# 循环    斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
def fib_cycle(n):
    if n < 2:
        return n
    else:
        c = 0
        a = 0
        b = 1
        for i in range(1, n):
            c = a + b
            a = b
            b = c
        return c

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容