0
我已經找出了尋找斐波納契數的代碼。如果輸入不是斐波那契數字,程序將打印出最近的數字。接下來,我如何確定該數字在系列中的位置?就像如果n = 8,它的位置是7,所以輸出7.我嘗試使用索引,但蟒蛇指出,指標並不適用於整數Python(斐波納契數的位置)
def fibs():
a,b = 0,1
yield a
yield b
while True:
a,b = b,a+b
yield b
def nearest_fib(n):
# If n is a Fibonacci number return Yes and n
# Otherwise, return No and the nearest Fibonacci number
n = int(input("Please enter an integer:"))
for fib in fibs():
if fib == n:
return print("Yes! your integer is an fibonacci number")
elif fib < n:
prev = fib
else:
# Is n closest to prev or to fib?
if n - prev < fib - n:
return print("No! Your answer is not a fibonacci number"), prev
else:
return print("No! Your answer is not a fibonacci number"), fib
for i in range(1):
print(i,nearest_fib(i))
我試過,但有太多的輸出。我可以在這裏獲得更多指導嗎?我在for for循環之前包含以下代碼,枚舉fib(fibs()): print(i,fib) – Tammy