问题描述:
斐波那契数列如下:
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])
更多推荐
斐波那契数列计算 Python编程
发布评论