题目是【编程实现:用递归函数的方法实现在屏幕输出n项斐波那契数列,并将数列用一个列表对象表示,要求n在10项以上,输出的内容是:先每行输出5项,然后再换行输出列表。】 现在已经大致写出来了,但是不知道怎么用列表形式输出,求教大佬 【def fbnq(x): if x==1 or x==2: return 1 else: return fbnq(x-1)+fbnq(x-2) n=int(input("请任意输入一个正整数n:")) count=0 for i in range(1,n+1): print(fbnq(i),end=" ") count=count+1 if count%5==0:print()】 这是现在的程序样子( *ˊᵕˋ)✩︎‧₊
在你的代码基础上在上数列就可以了
源程序如下:
def fbnq(x):
if x==1 or x==2:
return 1
else:
return fbnq(x-1)+fbnq(x-2)
n=int(input("请任意输入一个正整数n:"))
count=0
fibs = []
for i in range(1,n+1):
fibs.append(fbnq(i))
print(fbnq(i),end=" ")
count=count+1
if count%5==0:
print()
print("以数列的形式输出:")
print(fibs)
输出结果:
请任意输入一个正整数n:15
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
以数列的形式输出:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]
如有帮助还望采纳,码子不易 谢谢哦
def fbnq(x):
if x<=2:
return [1]*x
r = fbnq(x-1)
r.append(r[-1]+r[-2])
return r
n=int(input("请任意输入一个正整数n:"))
li = fbnq(n)
count=0
for i in li:
print(i,end=" ")
count=count+1
if count%5==0:
print()
l=[1,1]
p = [1,1]
for i in range(25):
l.append(l[-2]+l[-1])
for i in range(25):
if(i%6==0):
print(p)
p=[]
else:
p.append(l[i])
python的代码是强格式类型的。
递归+列表应该是fbnq(n)一次性返回一个包含n个元素的列表
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632