当Python中的命令行提供了N时,如何从N向上打印斐波那契序列
我有下面的Python代码,但我不知道它缺少什么。从第二行到最后一行没有生成任何内容,我需要最终的输出来生成一个垂直的斐波那契序列列表,直到变量N。有人能帮忙吗当Python中的命令行提供了N时,如何从N向上打印斐波那契序列,python,fibonacci,series,Python,Fibonacci,Series,我有下面的Python代码,但我不知道它缺少什么。从第二行到最后一行没有生成任何内容,我需要最终的输出来生成一个垂直的斐波那契序列列表,直到变量N。有人能帮忙吗 import sys N = int(sys.argv[1]) def fibonacci (N): if N == 0: print (0) elif N == 1: print (0, 1) else: print (str((N-1) + (N-2))) print (range (0, N +
import sys
N = int(sys.argv[1])
def fibonacci (N):
if N == 0:
print (0)
elif N == 1:
print (0, 1)
else:
print (str((N-1) + (N-2)))
print (range (0, N + 1))
递归:
斐波那契序列如下: 1,1,2,3,5,8,13,21,34,55,89144 它是使用递归函数生成的: Fn=Fn-1+Fn-2,其中N>1,F0=0,F1=1 使用元组分配功能的一个可能实现是: 密码
我相信这个算法也能起作用:你可以将N设置为你想要的任何数字
N = 10
n = 1
a, b = 0, 1
while n < (N + 1):
print(a)
a, b = b, (a+b)
n += 1
你从未调用过斐波那契方法
这是针对您的问题的递归解决方案
时间复杂度:Tn=Tn-1+Tn-2
这是错误的。您从未调用过斐波那契。@AndreaST您希望斐波那契序列一直到N还是第一到第N个序列?@devsaw我希望斐波那契序列一直到N,包括N。好的。还要考虑添加代码的输出,这会使问题更加清晰。您的代码缩进需要修复。可能存在代码的重复
a = 0
b = 1
print a
print b
for i in range(sys.argv[1]):
c = a + b
print c
a = b
b = c
def fib(n):
a , b = 1,1 # F(1), F(2)
print(a)
while b<=n:
a, b = b, a+b
print(a)
if __name__ == '__main__':
import sys
N = int(sys.argv[1])
fib(20)
1
1
2
3
5
8
13
N = 10
n = 1
a, b = 0, 1
while n < (N + 1):
print(a)
a, b = b, (a+b)
n += 1
import sys
N= int(sys.argv[1])
def fibonacci (n):
if n <= 1:
return n;
return fibonacci(n-1) + fibonacci(n-2)
for b in range(0,N):
print(fibonacci(b))