我正在尝试使用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]]
请告诉我如何继续这个
答案 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