当Python中的命令行提供了N时,如何从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 +

我有下面的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 + 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))