问题描述:

斐波那契数列如下:
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编程