如何编写斐波那契数列的python程序,需要在金字塔中显示数列?
How to write a python program for the Fibonacci series and need to show series in Pyramid?
我想为斐波那契数列写一个程序,需要在金字塔中显示数列。
输入(通过命令行)Fibonacci 必须迭代的次数。
前任:
输入次数
6个
斐波那契数列的数是:0 1 1 2 3
下面是预期的输出 -
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5
我试过下面的代码 -
n= int(input("enter the number of rows: "))
a=0
b=1
for i in range(a,n):
a=0
b=1
print(b,end="")
for j in range(a,i-1):
c=a+b
print(c,end="")
a=b
b=c
print()
但这是给出以下输出
1
1
11
112
1123
11235
上面的输出从“1”开始,但预期的输出应该从“0”开始
请按预期帮助我正确 python 代码
谢谢
您的代码需要进行一些小改动。你必须让 end=" ",这样它会在那里打印 space。
n= int(input("enter the number of rows: "))
a=0
b=1
for i in range(a,n):
a=0
b=1
print(a, b,end=" ")
for j in range(a,i-1):
c=a+b
print(c,end=" ")
a=b
b=c
print()
尝试:
n = int(input("Enter the number of rows: "))
fib = []
for i in range(n):
fib.append(fib[-2] + fib[-1] if i > 1 else i)
print(' '.join(str(x) for x in fib))
输出:
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5
在您的代码中,您从零开始为每一行计算斐波那契数列,这是多余的。相反,您可以创建一个列表并在每次迭代时添加一项。
我使用 join
在条目之间插入一个空格,我认为这更“pythonic”。
如果将计算与漂亮的输出分开,通常可以简化代码。所以首先构建你的系列:
>>> series = [0,1]
>>> n = 6
>>> while len(series) < n:
series.append(series[-1]+series[-2])
>>> series
[0, 1, 1, 2, 3, 5]
然后做输出:
>>> sseries = [str(s) for s in series]
>>> sseries
['0', '1', '1', '2', '3', '5']
>>> for row in range(len(sseries)+1):
print (" ".join(sseries[:row]))
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5
我想为斐波那契数列写一个程序,需要在金字塔中显示数列。 输入(通过命令行)Fibonacci 必须迭代的次数。 前任: 输入次数 6个 斐波那契数列的数是:0 1 1 2 3
下面是预期的输出 -
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5
我试过下面的代码 -
n= int(input("enter the number of rows: "))
a=0
b=1
for i in range(a,n):
a=0
b=1
print(b,end="")
for j in range(a,i-1):
c=a+b
print(c,end="")
a=b
b=c
print()
但这是给出以下输出
1
1
11
112
1123
11235
上面的输出从“1”开始,但预期的输出应该从“0”开始
请按预期帮助我正确 python 代码 谢谢
您的代码需要进行一些小改动。你必须让 end=" ",这样它会在那里打印 space。
n= int(input("enter the number of rows: "))
a=0
b=1
for i in range(a,n):
a=0
b=1
print(a, b,end=" ")
for j in range(a,i-1):
c=a+b
print(c,end=" ")
a=b
b=c
print()
尝试:
n = int(input("Enter the number of rows: "))
fib = []
for i in range(n):
fib.append(fib[-2] + fib[-1] if i > 1 else i)
print(' '.join(str(x) for x in fib))
输出:
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5
在您的代码中,您从零开始为每一行计算斐波那契数列,这是多余的。相反,您可以创建一个列表并在每次迭代时添加一项。
我使用 join
在条目之间插入一个空格,我认为这更“pythonic”。
如果将计算与漂亮的输出分开,通常可以简化代码。所以首先构建你的系列:
>>> series = [0,1]
>>> n = 6
>>> while len(series) < n:
series.append(series[-1]+series[-2])
>>> series
[0, 1, 1, 2, 3, 5]
然后做输出:
>>> sseries = [str(s) for s in series]
>>> sseries
['0', '1', '1', '2', '3', '5']
>>> for row in range(len(sseries)+1):
print (" ".join(sseries[:row]))
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
0 1 1 2 3 5