斐波那契数列,指的是这样一个数列,这个数列从第3项开始,每一项都等于前两项之和。求斐波那契数列的前n项。
输入格式:
输入一个n(n>=3)的值。
输出格式:
输出斐波那契数列的前n项。
n=int(input())
f1=0
f2=1
l=[str(f1),str(f2)]
for i in range(2,n):
f3=f1+f2
f1,f2=f2,f3
l.append(str(f3))
print(','.join(l))
def fib(n):
a,b,res = 1,1,[]
for i in range(1,n+1):
res.append(a)
a,b = b,a+b
return res
for i in range(1,11):
print(fib(i))
输出:
[1]
[1, 1]
[1, 1, 2]
[1, 1, 2, 3]
[1, 1, 2, 3, 5]
[1, 1, 2, 3, 5, 8]
[1, 1, 2, 3, 5, 8, 13]
[1, 1, 2, 3, 5, 8, 13, 21]
[1, 1, 2, 3, 5, 8, 13, 21, 34]
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
class FeiBo: # 菲波那切数列
def __init__(self, n):
self.n = n
self.n1 = 0
self.n2 = 0
self.n3 = 1
def __iter__(self):
return self
def __next__(self):
if self.n1 < self.n:
self.n2, self.n3 = self.n3, self.n2 + self.n3
self.n1 += 1
return self.n2
else:
raise StopIteration
a = FeiBo(int(input("请输入一个数")))
my_list1 = list(a)
print(my_list1)
这个主要考查就是迭代器
有用请采纳
def Fibonacci(n):
nums_List = [1, 1] # 保存斐波那契数列
for i in range(2, n):
nums_List.append(nums_List[i-1] + nums_List[i-2])
return nums_List
n = int(input())
print(Fibonacci(n))
def face(n):
if n==1 or n==2:
return 1
else:
return face(n-1)+face(n-2)
n=int(input("请输入一个数"))
print(face(n))
n = int(input())
f1 = 1
f2 = 1
f3 = f1 + f2
print(f1, end=' ')
print(f2, end=' ')
print(f3, end=' ')
for i in range(4, n):
f1 = f2
f2 = f3
f3 = f1 +f2
print(f3, end=' ')
def fibonacci(num):
fibs = [0,1]
for i in range(num-2):
fibs.append(fibs[-2]+fibs[-1])
return(fibs)
print(fibonacci(int(input('请输入:'))))