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))