zoukankan      html  css  js  c++  java
  • 斐波那契数列

    非递归输出小于等于n的项

    def fib(n):
        a,b=1,1
        while a < n:
            print(a,end=' ')
            a,b=b,a+b

    递归输出小于等于n的项

    def fib(n, a=1, b=1):
        if  a > n:
            return
    print
    (a,end=' ') fib(n, b, a+b)

    递归输出前n项

    def fib3(n, a=1, b=1):
        n -= 1
    if n < 0: return
    print(a, end=' ') fib3(n, b, a+b)
    # 返回前n项
    def fib(x):
        def inner(n, res, a=1, b=1):
            n -= 1
            if n < 0:
                return res
            res.append(a)
            return inner(n, res, b, a+b)
        return inner(x, [])
    
    
    f = fib(5)
    print(f)
    
    
    # 返回小于n的项
    def fib2(n):
        def inner(nu, res, a=1, b=1):
            if a > nu:
                return res
            res.append(a)
            return inner(nu, res, b, a + b)
    
        return inner(n, [])
    def fib(n, flag=0):
        def fib1(n, a=1, b=1):
            if  a > n:
                return
            print(a,end=' ')
            fib1(n, b, a+b)
            
        def fib2(n, a=1, b=1):
            n -= 1
            if n < 0:
                return
            print(a, end=' ')
            fib2(n, b, a+b)
             
        if not flag:
            fib1(n)
        else:
            fib2(n)
  • 相关阅读:
    Daily Scrum 10.31
    Daily Scrum 10.30
    Daily Scrum 10.29
    Daily Scrum 10.28
    扩展设置
    安装
    james+javamail入门
    解决ZF2_PATH environment
    Apache Httpd Server 2.2升级2.4
    缓存,spring
  • 原文地址:https://www.cnblogs.com/webc/p/11157385.html
Copyright © 2011-2022 走看看