我有這個代碼,帶有input_number = 10. 我必須用條件制作斐波那契數列:fibo[-2] < input_number < fibo[-1]
def fibonacci(input_number):
a = 0
b = 1
fibo=[a, b]
while b < input_number:
a, b = b, a b
fibo.append(b)
print(fibo)
輸出是這樣的,正如我所料:
[0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 2, 3]
[0, 1, 1, 2, 3, 5]
[0, 1, 1, 2, 3, 5, 8]
[0, 1, 1, 2, 3, 5, 8, 13]
但現在的問題是我想呼叫最后一個斐波那契數,即 13,輸出應該是"The last fibonacci number is 13 and it is the 8th fibonacci number". 但我不能叫 13 的數字,因為它是一個整數而不是一個串列。
如何將其轉換為串列?
uj5u.com熱心網友回復:
fibo是包含所有值的串列。要獲取串列的最后一個值,您可以按 -1 對其進行索引,因此fibo[-1]. 然后我們可以通過獲取串列的長度來確定斐波那契數 fibo[-1] 是哪個len(fibo)。
我不會為你寫完整的答案,但把這個
print("fibo[-1]==",fibo[-1], " len(fibo)==", len(fibo))
在 while 回圈之外,我認為您可以從那里弄清楚。
uj5u.com熱心網友回復:
您可能只需要訪問 fibo 陣列的語法。希望以下內容有幫助:
def fibonacci(input_number):
a = 0
b = 1
fibo = [a, b]
while b < input_number:
a, b = b, a b
fibo.append(b)
print(fibo)
print(f'fibonacci number {len(fibo)} is {fibo[len(fibo) - 1]}')
print('===')
i = 0
while i < len(fibo):
print(f'fibonacci number {i 1} is {fibo[i]}')
i = 1
fibonacci(10)
結果:
[0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 2, 3]
[0, 1, 1, 2, 3, 5]
[0, 1, 1, 2, 3, 5, 8]
[0, 1, 1, 2, 3, 5, 8, 13]
fibonacci number 8 is 13
===
fibonacci number 1 is 0
fibonacci number 2 is 1
fibonacci number 3 is 1
fibonacci number 4 is 2
fibonacci number 5 is 3
fibonacci number 6 is 5
fibonacci number 7 is 8
fibonacci number 8 is 13
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326359.html
