1. 程式人生 > 其它 >python-Fibonacci數,函式PrintFN(m,n)

python-Fibonacci數,函式PrintFN(m,n)

【問題描述】要求實現一個計算Fibonacci數的函式,並利用其實現另一個函式——輸出兩正整數m和n(0<m<n≤100000)之間的所有Fibonacci數的數目。 所謂Fibonacci數列就是滿足任一項數字是前兩項的和(最開始兩項均定義為1,即fib(0)=fib(1)=1)的數列。其中函式fib(i)須返回第i項Fibonacci數;函式PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci數。要求輸入區間範圍m、n,以及i,列印輸出區間[m,n]中Fibonacci數的數目,以及第i項Fibonacci數。提示:Fibonacci數列從第0項開始。

【輸入形式】20 100 6

【輸出形式】fib(6) = 13

                      4

【樣例輸入】20 100 6

【樣例輸出】fib(6) = 13

                      4

【樣例說明】區間[20,100]中的Fibonacci數個數為4個,以及第6項Fibonacci數為13。

【評分標準】

def fib(n):#Fibonacci數
a,b=1,1
i = 0
while i<n:
a,b=b,a+b
i+=1
return a
def PrintFN(m,n):
i = 0
l = []
while True:
if fib(i)>n:
break
if n>=fib(i)>=m:
l.append(fib(i))
i+=1
return l
m,n,i = map(int,input().split())
b = fib(i)
print('fib({0}) = {1}'.format(i,b))
fiblist = PrintFN(m,n)
print(len(fiblist))