問題描述:
斐波那契數列如下:
F(0) = 0, F(1) = 1
F(n) = F(n-1) + F(n-2)
編寫一個計算斐波那契數列的函數,採用遞歸方式,輸出不超過n的所有斐波那契數列元素
調用上述函數,完成如下功能:
用戶輸入一個整數n,輸出所有不超過n的斐波那契數列元素、輸出數列的元素和及平均數,
輸出按照順序,用英文逗號和空格分割
例如:
輸入: 5
輸出: 0, 1, 1, 2, 3, 5, 12, 2
python實現:
def fibo(number):
if number == 0:
return 0
elif number ==1:
return 1
else:
fiboValue = fibo(number - 1) + fibo(number - 2)
return fiboValue
def fiboListFun(num):
temp = 0
while True:
fiboVal = fibo(temp)
if fiboVal > num:
break
fiboList.append(fiboVal)
temp = temp + 1
num = eval(input())
fiboList = []
fiboListFun(num)
#求和
fiboSum = sum(fiboList)
#求均值
fiboAvg = fiboSum // len(fiboList)
#把sum、avg加入fiboList然後輸出
fiboList.append(fiboSum)
fiboList.append(fiboAvg)
#此時輸出的是列表,如輸入5,輸出[0,1,1,2,3,5,12,2],
#要求的輸出:1.沒有方括號 2.使用逗號和空格作爲分割,而這個只有逗號
#print(fiboList)
for i in range(len(fiboList) - 1):
print(fiboList[i], end =', ')
print(fiboList[-1])