Python 斐波那契数列

Fibonacci Sequence

# fibonacci sequence 斐波那契数列

def fibonacci_for(n):
    # 使用for循环返回n位斐波那契数列列表
    li = []
    for i in range(n+1):
        if i == 0 or i == 1:
            li.append(1)
        else:
            li.append(li[i-2] + li[i-1])
    return li

def fibonacci_sequence(over, x=1, y=1):
    # 返回一个over值以内的斐波那契数列列表
    if x <= over:
        return [x] + fibonacci_sequence(over, y, x+y)
    else:
        return []

def fibonacci_count(n, x=1, y=1, count=0):
    # 使用递归返回n位斐波那契数列列表
    if count <= n:
        count += 1
        return [x] + fibonacci_count(n, y, x+y, count)
    else:
        return []

def fibonacci_index(index, x=1, y=1, count=0):
    # 使用递归返回index位置的斐波那契数值
    if count == index:
        return x
    else:
        count += 1
        return fibonacci_index(index, y, x+y, count)

def fibonacci_short(x):
    # 极短版斐波那契数列
    if x < 2: return 1
    return fibonacci_short(x-2) + fibonacci_short(x-1)

print(fibonacci_for(12))
print(fibonacci_sequence(300))
print(fibonacci_count(12))
print(fibonacci_index(12))
print(fibonacci_short(12))
Resistance is Futile!
原文地址:https://www.cnblogs.com/noonjuan/p/10851444.html