这是我的在线课程模块的一部分,我需要编写一个用户输入number(n)
的程序,程序然后打印斐波纳契系列中的第一个n
数字。
我目前编写了该程序,以便在某个位置打印出fibonacci
号码。
例如,如果我输入“7”,它将打印“13”。
n = int(input("Enter a number:"))
fibonacciSeries = ((1+sqrt(5))**n-(1-sqrt(5))**n) /(2**n*sqrt(5))
print (fibonacciSeries)
如何修改此代码,以便打印出系列中第7个数字前的所有数字?
答案 0 :(得分:1)
如果你需要重复一个操作,你需要循环,如果你还需要存储重复操作的结果,你需要一个列表。因此,使用列表推导来创建所有数字的列表,直到i
(为了在range
中使用而重命名)。
然后,您可以在print
调用中解压缩以查看生成的所有数字。另外,/
是浮点除法;你可能在这里进行了分区//
,所以我为你修改了这个:
i = int(input("Enter a number:"))
fibonacciSeries = [((1+sqrt(5))**n-(1-sqrt(5))**n)//(2**n*sqrt(5)) for n in range(1, i+1)]
print ("Fibonacci Nums: ", *fibonacciSeries)
表达式:
[(...) for n in range(1, 1+1)]
将重复(...)
次i
次的操作。
这导致:
Enter a number:7
Fibonacci Nums: 1.0 1.0 2.0 3.0 5.0 8.0 13.0
答案 1 :(得分:0)
嗯......假设你的计算是正确的(可能是,我以前从未见过)
n = int(input("Enter a number:"))
for i in range(1,n+1):
fibonacciSeries = ((1+sqrt(5))**i-(1-sqrt(5))**i) /(2**i*sqrt(5))
print (fibonacciSeries)
答案 2 :(得分:0)
你可以将它放在一个循环中,如下所示:
n = int(input("Enter a number:"))
for i in range(n + 1):
fib = ((1+sqrt(5))**n-(1-sqrt(5))**n) /(2**n*sqrt(5))
print(fib)
答案 3 :(得分:0)
如果您已经计算了Fibonacci序列的第一个n-1
值,则没有理由不使用它们来确定n
项。
a, b = 0, 1 #set a=0, b=1
for _ in range(n): #do the following n times
print(a) #print one term each loop, for a total of n terms
a, b = b, a+b #advance the sequence one step
答案 4 :(得分:0)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
斐波纳契生成器将弹出您想要的数字。我不知道你是否最终除了打印之外还有别的东西要做,但是当你输出一个系列时,强烈推荐使用发生器。
答案 5 :(得分:0)
这应该这样做。
def fibonacci():
x,y = 1,1
n=int(input("Enter number: "))
n_int=int(n-2)
for i in range (n_int):
x,y=y,x+y
print(x)
print(y)