斐波那契系列使用python中的列表

时间:2015-05-31 00:41:14

标签: python

我正在尝试使用python中的列表打印斐波纳契系列。 这是我的代码:

T = int(raw_input())
N = [int(raw_input()) for i in range(T)]
N[:] = [x-2 for x in N]
L1 = [1, 1]
L2 = []
for j in N:
    for k in range(j):
        L1.append(L1[-1]+L1[-2])
    L2.append(L1)
print L2

这里,T表示测试用例的数量。 N表示斐波纳契数列中的元素数。我需要为每个测试用例打印斐波纳契系列的所需输出。

Input: 
2
4
5

上述代码的输出:

  

[[1,1,2,3,5,8,13],[1,1,2,3,5,8,13]]

但是我要打印的输出是:

  

[1,1,2,3],[1,1,2,3,5]]

请告诉我如何继续这个

1 个答案:

答案 0 :(得分:2)

您的问题是您没有重置L1。尝试:

T = int(raw_input())
N = [int(raw_input()) for i in range(T)]
N[:] = [x-2 for x in N]
L2 = []
for j in N:
  L1 = [1, 1]
  for k in range(j):
    L1.append(L1[-1]+L1[-2])
  L2.append(L1)
print L2